详解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网络编程学习笔记(10):webpy框架
Jun 09 Python
Python可变参数函数用法实例
Jul 07 Python
详解Django中的权限和组以及消息
Jul 23 Python
python下10个简单实例代码
Nov 15 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
Python字节单位转换实例
Dec 05 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Python龙贝格法求积分实例
Feb 29 Python
基于python实现简单网页服务器代码实例
Sep 14 Python
Python OpenCV快速入门教程
Apr 17 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
一个odbc连mssql分页的类
2006/10/09 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python实现数据图表
2017/07/29 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
Shell编程面试题
2012/05/30 面试题
应用数学自荐书范文
2013/11/24 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
干部考核评语
2014/04/29 职场文书
商务英语专业求职信
2014/06/26 职场文书
入队仪式主持词
2015/07/04 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python