Python序列之list和tuple常用方法以及注意事项


Posted in Python onJanuary 09, 2015

sequence 序列

sequence(序列)是一组有顺序的对象的集合。序列可以包含一个或多个元素,也可以没有任何元素。

我们之前所说的基本数据类型,都可以作为序列的对象。对象还可以是另一个序列。序列有两种:list (表) 和 tuple(元组) 。
list和tuple的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。

List

获得list元素的个数:

>>> lst=['更新慢','python',5.44,False]

>>> len(lst)

4

引用访问时索引是从0开始,注意不要越界:

>>> lst[0]

'更新慢'

>>> lst[1]

'python'

>>> lst[2]

5.44

>>> lst[3]

False

>>> lst[4]

Traceback (most recent call last):

  File "<pyshell#30>", line 1, in <module>

    lst[4]

IndexError: list index out of range

用-1做索引,直接获取最后一个元素:

>>> lst[-1]

False

>>> lst[-2]

5.44

>>> lst[-3]

'python'

>>> lst[-4]

'更新慢'

>>> lst[-5]

Traceback (most recent call last):

  File "<pyshell#35>", line 1, in <module>

    lst[-5]

IndexError: list index out of range

因为list是一个可变的有序表,所以,可以往list末尾追加元素:

>>> lst.append('加我一个')

>>> lst

['更新慢', 'python', 5.44, False, '加我一个']

一次追加多个元素:

>>> lst.extend(['A','B','C'])

>>> lst

['更新慢', 'python', 5.44, False, '加我一个', 'A', 'B', 'C']

要删除list末尾的元素,用pop()方法:

>>> lst.pop()

'C'

>>> lst

['更新慢', 'python', 5.44, False, '加我一个', 'A', 'B']

删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> lst.pop(0)

'更新慢'

>>> lst

['python', 5.44, False, '加我一个', 'A']

list元素替换,可以直接赋值给对应的索引位置:

>>> lst[-1]='100'

>>> lst

['python', 5.44, False, '加我一个', '100']

list元素也可以是另一个list,插入的那个list只算一个元素:

>>> lst.append(lst1)

>>> lst

['python', 5.44, False, '加我一个', '100', ['666', 'QWER']]

>>> len(lst)

6

Tuple

Tuple一旦初始化就不能修改。字符串是一种特殊的元素,因此可以执行元组的相关操作。

>>> str='该睡觉了,晚安!'

>>> print (str[:7])

该睡觉了,晚安

不可变的tuple意义就在于因为不可变,所以代码更安全。如果可能,能用tuple就尽量用tuple。

>>> tuple=('1','2','3')

>>> tuple[0]=6

Traceback (most recent call last):

  File "<pyshell#62>", line 1, in <module>

    tuple[0]=6

TypeError: 'tuple' object does not support item assignment

定义一个空tuple:

>>> tuple1=()

>>> tuple1

()

注意,要定义一个只有1个元素的tuple:
>>> tuple2=(666,)

>>> tuple2

(666,)              #正确的

>>> tuple3=(666)

>>> tuple3

666                 #错误的,只定义了666这个数

注意:Tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。

>>> l=['CCTV-5','HI']

>>> tuple4=('UFO','HACK',l)

>>> tuple4

('UFO', 'HACK', ['CCTV-5', 'HI'])

>>> l[1]='我先变一下'

>>> tuple4

('UFO', 'HACK', ['CCTV-5', '我先变一下'])

所以尽量避免这种套用。

当日小结

掌握List和Tuple的常用方法以及注意事项。

Python 相关文章推荐
Python2中的raw_input() 与 input()
Jun 12 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
python实现发送邮件功能
Jul 22 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
python远程连接服务器MySQL数据库
Jul 02 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
基于python if 判断选择结构的实例详解
May 06 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
Oct 10 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
Python中的生成器和yield详细介绍
Jan 09 #Python
Python中实现对list做减法操作介绍
Jan 09 #Python
python base64 decode incorrect padding错误解决方法
Jan 08 #Python
Python中字符编码简介、方法及使用建议
Jan 08 #Python
Python实现一个简单的MySQL类
Jan 07 #Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 #Python
Python中对列表排序实例
Jan 04 #Python
You might like
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
arguments对象
2006/11/20 Javascript
自己开发Dojo的建议框架
2008/09/24 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python下Fabric的简单部署方法
2015/07/14 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python字典遍历操作实例小结
2019/03/05 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
Django之PopUp的具体实现方法
2019/08/31 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
大学生村官典型材料
2014/01/12 职场文书
2014学年自我鉴定
2014/02/23 职场文书
青年文明号创建承诺
2014/03/31 职场文书
公司授权委托书范本
2014/09/18 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
地球上的星星观后感
2015/06/02 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js