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(Tornado)模拟登录小米抢手机
Nov 12 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
python在每个字符后添加空格的实例
May 07 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
python groupby 函数 as_index详解
Dec 16 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 Python
Python基础学习之奇异的GUI对话框
May 27 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
我的论坛源代码(三)
2006/10/09 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
分享3个php获取日历的函数
2015/09/25 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
Python 字典与字符串的互转实例
2017/01/13 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python针对excel的操作技巧
2018/03/13 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python threading的使用方法解析
2019/08/28 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
买房子个人收入证明
2014/01/16 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
政协常委会议主持词
2015/07/03 职场文书