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 相关文章推荐
Python实现基于HTTP文件传输实例
Nov 08 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python selenium 弹出框处理的实现
Feb 26 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
python之拟合的实现
Jul 19 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
python Shapely使用指南详解
Feb 18 Python
MATLAB数学建模之画图汇总
Jul 16 Python
python温度转换华氏温度实现代码
Dec 06 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
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php合并js请求的例子
2013/11/01 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
jQuery入门知识简介
2010/03/04 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
js实现搜索提示框效果
2020/09/05 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
internal修饰符起什么作用
2013/12/16 面试题
《东方明珠》教学反思
2014/04/20 职场文书
保险专业求职信
2014/07/07 职场文书
小学生安全责任书
2014/07/25 职场文书
教师学期个人总结
2015/02/11 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis