详解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高效编程技巧
Jan 07 Python
Python实现配置文件备份的方法
Jul 30 Python
python实现备份目录的方法
Aug 03 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
python逆向入门教程
Jan 15 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
python中super()函数的理解与基本使用
Aug 30 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
多文件上载系统完整版
2006/10/09 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
python实现移动木板小游戏
2020/10/09 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
财务人员个人求职信范文
2013/12/04 职场文书
金融行业务员的自我评价
2013/12/13 职场文书
亲戚结婚的请假条
2014/02/11 职场文书
运动会入场词50字
2014/02/20 职场文书
土木工程求职信
2014/05/29 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
生日寿星公答谢词
2015/09/29 职场文书
品德与社会教学反思
2016/02/24 职场文书
导游词之山东红叶谷
2019/10/31 职场文书