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 相关文章推荐
在Django的模型中添加自定义方法的示例
Jul 21 Python
Python切片操作实例分析
Mar 16 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
Python带动态参数功能的sqlite工具类
May 26 Python
python3去掉string中的标点符号方法
Jan 22 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Python sublime安装及配置过程详解
Jun 29 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
Python函数中apply、map、applymap的区别
Nov 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
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
jquery实现简单拖拽效果
2020/07/20 jQuery
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
django 控制页面跳转的例子
2019/08/06 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
ORACLE第二个十问
2013/12/14 面试题
自我推荐信范文
2014/05/09 职场文书
元旦晚会活动总结
2014/07/09 职场文书
英文导游词
2015/02/13 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
小学毕业感言200字
2015/07/30 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
JavaScript分页组件使用方法详解
2021/07/26 Javascript