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基础知识_浅谈用户交互
May 31 Python
python中subprocess批量执行linux命令
Apr 27 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
Python命名空间的本质和加载顺序
Dec 17 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
代码实例讲解python3的编码问题
Jul 08 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 Python
Python闭包的定义和使用方法
Apr 11 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 Python
Python中tqdm的使用和例子
Sep 23 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调用Java对象的方法
2006/10/09 PHP
基于mysql的论坛(3)
2006/10/09 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
应用服务器有那些
2012/01/19 面试题
Java基础面试题
2012/11/02 面试题
找工作最新求职信
2013/12/22 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
总账会计岗位职责
2015/04/02 职场文书
团队拓展训练感想
2015/08/07 职场文书
门面租赁合同范文
2019/08/06 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
Go语言基础知识点介绍
2021/07/04 Golang
python中的3种定义类方法
2021/11/27 Python
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL