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下载懒人图库JavaScript特效
May 28 Python
python读取oracle函数返回值
Jul 18 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
Python中collections模块的基本使用教程
Dec 07 Python
详解Python中的测试工具
Jun 09 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
使用python 写一个静态服务(实战)
Jun 28 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 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
用session做客户验证时的注意事项
2006/10/09 PHP
收藏的一个php小偷的核心程序
2007/04/09 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
解放web程序员的输入验证
2006/10/06 Javascript
ext 代码生成器
2009/08/07 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python使用pil生成缩略图的方法
2015/03/26 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
大学生求职简历的自我评价
2013/10/21 职场文书
应届生会计求职信
2013/11/11 职场文书
初中毕业生感言
2015/07/31 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书