详解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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
解决Django模板无法使用perms变量问题的方法
Sep 10 Python
基于python socketserver框架全面解析
Sep 21 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
Python离线安装各种库及pip的方法
Nov 28 Python
Python中如何处理常见报错
Jan 18 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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脚本的10个技巧(4)
2006/10/09 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
cdn模式下vue的基本用法详解
2018/10/07 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
深入理解python多进程编程
2016/06/12 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
python对文件的操作方法汇总
2020/02/28 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
优秀志愿者事迹材料
2014/02/03 职场文书
出纳员的岗位职责
2014/02/22 职场文书
地球一小时倡议书
2014/04/15 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
感谢信格式范文
2015/01/22 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
周末问候语大全
2015/11/10 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书