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入门篇之字符串
Oct 17 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
python数据处理实战(必看篇)
Jun 11 Python
单链表反转python实现代码示例
Feb 08 Python
Django后台获取前端post上传的文件方法
May 28 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
python实现二维数组的对角线遍历
Mar 02 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
做一个有下拉功能的留言版
2006/10/09 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP chop()函数讲解
2019/02/11 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
JS的get和set使用示例
2014/02/20 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
javascript控制台详解
2015/06/25 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
python数字图像处理之高级滤波代码详解
2017/11/23 Python
python实现简易通讯录修改版
2018/03/13 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
心理健康课教学反思
2014/02/13 职场文书
安全生产责任书
2014/03/12 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
行为规范主题班会
2015/08/13 职场文书
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL