详解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 相关文章推荐
9种python web 程序的部署方式小结
Jun 30 Python
Python3基础之基本数据类型概述
Aug 13 Python
python字符串,数值计算
Oct 05 Python
django中的HTML控件及参数传递方法
Mar 20 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
anaconda升级sklearn版本的实现方法
Feb 22 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
我的论坛源代码(十)
2006/10/09 PHP
php实现每日签到功能
2018/11/29 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
JS array 数组详解
2009/03/22 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
js Date概念详细介绍
2013/11/22 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
Python的净值数据接口调用示例分享
2016/03/15 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python装饰器用法实例总结
2018/05/26 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
Python 字典中的所有方法及用法
2020/06/10 Python
python三引号如何输入
2020/07/06 Python
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
Java基础面试题
2012/11/02 面试题
幼儿园评语大全
2014/04/17 职场文书
酒店端午节活动方案
2014/08/26 职场文书
护士2015年终工作总结
2015/04/29 职场文书
消防安全主题班会
2015/08/12 职场文书