详解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自动格式化json文件的方法
Mar 11 Python
python实现SOM算法
Feb 23 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
详解python中*号的用法
Oct 21 Python
Python生态圈图像格式转换问题(推荐)
Dec 02 Python
用python求一重积分和二重积分的例子
Dec 06 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
python程序需要编译吗
Jun 19 Python
Python道路车道线检测的实现
Jun 27 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php下连接mssql2005的代码
2011/01/17 PHP
PHP小教程之实现链表
2014/06/09 PHP
php 使用array函数实现分页
2015/02/13 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python正则表达式使用范例分享
2016/12/04 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
J2EE包括哪些技术
2016/11/25 面试题
维护民族团结演讲稿
2014/08/27 职场文书
学校开学标语
2014/10/06 职场文书
预备党员转正材料
2014/12/19 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
会议新闻稿
2015/07/17 职场文书
奠基仪式致辞
2015/07/30 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
八年级作文之感恩
2019/11/22 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL