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 测试实现方法
Dec 24 Python
python从ftp下载数据保存实例
Nov 20 Python
Python表示矩阵的方法分析
May 26 Python
Python使用django搭建web开发环境
Jun 09 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
django使用LDAP验证的方法示例
Dec 10 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
python中子类与父类的关系基础知识点
Feb 02 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php curl_init函数用法
2014/01/31 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
bat和python批量重命名文件的实现代码
2016/05/19 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
历史专业个人求职信分享
2013/12/20 职场文书
学生会离职感言
2014/02/11 职场文书
校庆接待方案
2014/03/18 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
语文复习计划
2015/01/19 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers