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在多玩图片上下载妹子图的实现代码
Aug 13 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 Python
python微信智能AI机器人实现多种支付方式
Apr 12 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
PHP实现货币换算的方法
2014/11/29 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
JS 建立对象的方法
2007/04/21 Javascript
用js实现随机返回数组的一个元素
2007/08/13 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
毕业生求职自荐书范文
2014/03/27 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
2014年计生工作总结
2014/11/21 职场文书
优秀党员事迹材料
2014/12/18 职场文书
爱晚亭导游词
2015/02/09 职场文书
Linux安装Docker详细教程
2022/07/07 Servers