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实现定时自动关闭的tkinter窗口方法
Feb 16 Python
python3使用matplotlib绘制散点图
Mar 19 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
Flask中endpoint的理解(小结)
Dec 11 Python
python装饰器使用实例详解
Dec 14 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
Python如何定义有可选参数的元类
Jul 31 Python
PyCharm 光标变成黑块的解决方式
Feb 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
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
浅谈Node.js 中间件模式
2018/06/12 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
python实现的自动发送消息功能详解
2019/08/15 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
高中同学聚会邀请函
2014/01/11 职场文书
解除劳动合同协议书
2014/04/14 职场文书
初中班主任评语
2014/04/24 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
地陪导游欢迎词
2015/01/26 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android