详解Python3中的Sequence type的使用


Posted in Python onAugust 01, 2015

其实本来是要reverse一下list的,就去查了一下list[::-1]是什么意思,发现还有很多要注意的地方,所以就记一下。
主要是参照https://docs.python.org/3/library/stdtypes.html?highlight=list#list

首先Sequence type有三种

  1.     list
  2.     tuple
  3.     range

slice

[i:j:k]表示的是slice of s from i to j with step k, 对三种类型都有用

>>> a = [1, 2, 3]
>>> a[::-1]
[3, 2, 1]
>>> a = (1, 2, 3)
>>> a[::-1]
(3, 2, 1)
>>> a = range(3)
>>> a[::-1]
range(2, -1, -1)

range中参数是range(start, stop[, step])
initialize a list

s * n表示的是n shallow copies of s concatenated
注意是浅拷贝哦,所以会有如下情况

>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]

如果元素不是对象的话就没关系

>>> lists = [0] * 3
>>> lists
[0, 0, 0]
>>> lists[0] = 1
>>> lists
[1, 0, 0]

正确的初始化嵌套list的方法应该是

>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]

concatenation pitfall

(感觉还是英文说的清楚些,这一点跟Java是一样的)
Concatenating immutable sequences always results in a new object. This means that building up a sequence by repeated concatenation will have a quadratic runtime cost in the total sequence length. To get a linear runtime cost, you must switch to one of the alternatives below:

Python 相关文章推荐
Python中dictionary items()系列函数的用法实例
Aug 21 Python
使用Python设置tmpfs来加速项目的教程
Apr 17 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
Python中的元组介绍
Jan 28 Python
Python流程控制 if else实现解析
Sep 02 Python
python3正则模块re的使用方法详解
Feb 11 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
python3实现将json对象存入Redis以及数据的导入导出
Jul 16 Python
Python中读取文件名中的数字的实例详解
Dec 25 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 #Python
Python制作数据导入导出工具
Jul 31 #Python
简单理解Python中的装饰器
Jul 31 #Python
python简单分割文件的方法
Jul 30 #Python
Python读取网页内容的方法
Jul 30 #Python
python查看FTP是否能连接成功的方法
Jul 30 #Python
python如何实现excel数据添加到mongodb
Jul 30 #Python
You might like
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
Python实现的弹球小游戏示例
2017/08/01 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
使用python实现名片管理系统
2020/06/18 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
公司领导推荐信
2013/11/12 职场文书
计算机网络专业推荐信
2013/11/24 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
年度考核自我评价
2014/01/25 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
收款授权委托书
2014/10/02 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书