详解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实现代理服务功能实例
Nov 15 Python
Python 字符串操作方法大全
Mar 11 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
python网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
numpy数组拼接简单示例
Dec 15 Python
Python requests库用法实例详解
Aug 14 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
深入了解Python iter() 方法的用法
Jul 11 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
Python字符串格式化f-string多种功能实现
May 07 Python
python基于tkinter制作无损音乐下载工具
Mar 29 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生成静态页面的简单示例
2014/04/17 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
YII框架关联查询操作示例
2019/04/29 PHP
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
JS实现吸顶特效
2020/01/08 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
python config文件的读写操作示例
2019/09/27 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
编写strcpy函数
2014/06/24 面试题
初三化学教学反思
2014/01/23 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
中考冲刺决心书
2014/03/11 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
学历证明样本
2015/06/16 职场文书
高三毕业感言
2015/07/30 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis