详解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中mechanize库的简单使用示例
Jan 10 Python
用python写扫雷游戏实例代码分享
May 27 Python
TensorFlow的权值更新方法
Jun 14 Python
Python引用计数操作示例
Aug 23 Python
pycharm安装和首次使用教程
Aug 27 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
python 弧度与角度互转实例
Apr 15 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 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
PHP实现多条件查询实例代码
2010/07/17 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
详解Python中的正则表达式
2018/07/08 Python
实例详解Python模块decimal
2019/06/26 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Python如何实现的二分查找算法
2020/05/27 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
高校辅导员推荐信范文
2013/12/25 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
小学生安全演讲稿
2014/04/25 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python