Python序列之list和tuple常用方法以及注意事项
admin
2023-07-31 02:10:20
0

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 \”\”, line 1, in
    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 \”\”, line 1, in
    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 \”\”, line 1, in
    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的常用方法以及注意事项。

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...