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类型强制转换long to int的代码
Feb 10 Python
分析Python的Django框架的运行方式及处理流程
Apr 08 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
python list排序的两种方法及实例讲解
Mar 20 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
详解如何使用Pytest进行自动化测试
Jan 14 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 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
mysql总结之explain
2012/02/27 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
ExpressJS入门实例
2015/01/14 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
python opencv之SURF算法示例
2018/02/24 Python
python自动发送邮件脚本
2018/06/20 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
团员个人的自我评价
2013/12/02 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
团支部建设方案
2014/05/02 职场文书
先进典型事迹材料
2014/12/29 职场文书
中学教师个人总结
2015/02/10 职场文书
继续教育个人总结
2015/03/03 职场文书
2015大学生求职信范文
2015/03/20 职场文书
停电通知范文
2015/04/16 职场文书
礼仪培训心得体会
2016/01/22 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
idea下配置tomcat避坑详解
2022/04/12 Servers