详解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中关于日期时间处理的问答集锦
Mar 08 Python
Python设计模式之观察者模式实例
Apr 26 Python
Python FTP操作类代码分享
May 13 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
pyCharm 实现关闭代码检查
Jun 09 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
Python 操作 MySQL数据库
Sep 18 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 Python
python for循环赋值问题
Jun 03 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
超级简单的发送邮件程序
2006/10/09 PHP
一些PHP写的小东西
2006/12/06 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
javascript天然的迭代器
2010/10/29 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
Python使用combinations实现排列组合的方法
2018/11/13 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
Python学习之os模块及用法
2020/06/03 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
马云的职业生涯规划之路
2014/01/01 职场文书
给民警的表扬信
2014/01/08 职场文书
小学防溺水制度
2014/01/29 职场文书
宣传活动总结范文
2014/07/01 职场文书
自我管理的活动方案
2014/08/25 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技