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格式化压缩后的JS文件的方法
Mar 05 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
python3使用matplotlib绘制散点图
Mar 19 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
python isinstance函数用法详解
Feb 13 Python
如何在sublime编辑器中安装python
May 20 Python
python删除某个目录文件夹的方法
May 26 Python
python如何使用腾讯云发送短信
Sep 17 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
python爬虫中url管理器去重操作实例
Nov 30 Python
用Python实现职工信息管理系统
Dec 30 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字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
Mac下安装vue
2018/04/11 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
文秘专业个人求职信
2013/12/22 职场文书
优秀毕业生自荐信范文
2014/01/01 职场文书
实习生评语
2014/04/26 职场文书
停车场管理协议书范本
2014/10/08 职场文书
党员检讨书范文
2014/12/27 职场文书
python源码剖析之PyObject详解
2021/05/18 Python