详解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生成随机验证码(中文验证码)示例
Apr 03 Python
在Python中操作字典之fromkeys()方法的使用
May 21 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
Python list与NumPy array 区分详解
Nov 06 Python
Pandas时间序列:重采样及频率转换方式
Dec 26 Python
Python threading.local代码实例及原理解析
Mar 16 Python
Django查询优化及ajax编码格式原理解析
Mar 25 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
M1芯片安装python3.9.1的实现
Feb 02 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+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
discuz目录文件资料汇总
2014/12/30 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
详解Python中第三方库Faker
2020/09/25 Python
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
物业总经理岗位职责
2014/02/28 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
社区工作者演讲稿
2014/05/23 职场文书
环境卫生标语
2014/06/09 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
开会通知短信大全
2015/04/20 职场文书
2015年班组工作总结
2015/04/20 职场文书
同学联谊会邀请函
2019/06/24 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
Redis全局ID生成器的实现
2022/06/05 Redis
Promise静态四兄弟实现示例详解
2022/07/07 Javascript