详解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标准库sched模块使用指南
Jul 06 Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 Python
使用python实现ftp的文件读写方法
Jul 02 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
使用Python的turtle模块画国旗
Sep 24 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 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
将数组写入txt文件 var_export
2009/04/21 PHP
PHP安全性漫谈
2012/06/28 PHP
apache php模块整合操作指南
2012/11/16 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
解析window.open的使用方法总结
2013/06/19 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
javascript 面向对象实战思想分享
2017/09/07 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
js正则相关知识点专题
2018/05/10 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
python使用cPickle模块序列化实例
2014/09/25 Python
详解Python中DOM方法的动态性
2015/04/11 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
小学中等生评语
2014/12/29 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
团结主题班会
2015/08/13 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
iPhone13再次曝光
2021/04/15 数码科技