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面向对象编程中的类和对象学习教程
Mar 30 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
python爬虫基本知识
Mar 05 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
基于python绘制科赫雪花
Jun 22 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Django vue前后端分离整合过程解析
Nov 20 Python
如何利用python正则表达式匹配版本信息
Dec 09 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中PDO基础教程 入门级
2011/09/04 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
numpy数组拼接简单示例
2017/12/15 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
python机器学习库xgboost的使用
2020/01/20 Python
通过实例解析Python return运行原理
2020/03/04 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
财务部经理岗位职责
2014/02/03 职场文书
环保建议书100字
2014/05/14 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL