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实现通过哈希算法检测图片重复的教程
Apr 02 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
python实时监控cpu小工具
Jun 21 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
为什么Python中没有&quot;a++&quot;这种写法
Nov 27 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
python模拟点击网页按钮实现方法
Feb 25 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP4实际应用经验篇(8)
2006/10/09 PHP
php adodb分页实现代码
2009/03/19 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
php 使用array函数实现分页
2015/02/13 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
前台文员的岗位职责
2013/11/14 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
机械生产实习心得体会
2016/01/22 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
PyTorch 如何自动计算梯度
2021/05/23 Python
zabbix监控mysql的实例方法
2021/06/02 MySQL
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android