Python⼊门序列(列表,元组,字典,集合)
序列
序列是⼀种数据存储⽅式,⽤来存储⼀系列的数据。在内存中,序列就是⼀块⽤来存放多个值的连续的内存空间。⽐如⼀个整数序列[10,20,30,40],可以这样⽰意表⽰:
由于 Python3 中⼀切皆对象,在内存中实际是按照如下⽅式存储的:
a = [10,20,30,40]
从图⽰中,我们可以看出序列中存储的是整数对象的地址,⽽不是整数对象的值。python
中常⽤的序列结构有:字符串、列表、元组、字典、集合
列表简介
列表:⽤于存储任意数⽬、任意类型的数据集合。
列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表定义的标准语法格式:
a = [10,20,30,40]其中,10,20,30,40 这些称为:列表 a 的元素。
列表中的元素可以各不相同,可以是任意类型。⽐如:a = [10,20,'abc',True]
Python 的列表⼤⼩可变,根据需要随时增加或缩⼩。
字符串和列表都是序列类型,⼀个字符串是⼀个字符序列,⼀个列表是任何元素的序列
基本语法[]创建
list()创建 range()创建
使⽤ list()可以将任何可迭代的数据转化成列表。range()可以帮助我们⾮常⽅便的创建整数列表,语法格式为:range([start,] end [,step])
append()⽅法
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使⽤。
+运算符操作
并不是真正的尾部添加元素, ⽽是创建新的列表对象; 将原列表的元素和新列表的元素依次
复制到新的列表对象中。这样,会涉及⼤量的复制操作,对于操作⼤量元素不建议使⽤。
通过如上测试,我们发现变量 a 的地址发⽣了变化。也就是创建了新的列表对象。
extend()⽅法
将⽬标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
insert()插⼊元素
使⽤ insert()⽅法可以将指定的元素插⼊到列表对象的任意制定位置。这样会让插⼊位置后⾯所有的元素进⾏移动,会影响处理速度。涉及⼤量元素时,尽量避免使⽤。类似发⽣这种移动的函数还有:re
move()、pop()、del(),它们在删除⾮尾部元素时也会发⽣操作位置后⾯元素的移动。
del 删除
删除列表指定位置的元素。
pop()⽅法
pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后⼀个元素。
remove()⽅法
删除⾸次出现的指定元素,若不存在该元素抛出异常。
通过索引直接访问元素
可以通过索引直接访问元素。 索引的区间在[0, 列表长度-1]这个范围。 超过这个范围则会抛出异常。
index()获得指定元素在列表中⾸次出现的索引
index()可以获取指定元素⾸次出现的索引位置。 语法是: index(value,[start,[end]])。 其中,start 和 end 指定了搜索的范围。
count()获得指定元素在列表中出现的次数
count()可以返回指定元素在列表中出现的次数。
成员资格判断
判断列表中是否存在指定的元素,我们可以使⽤ count()⽅法,返回 0 则表⽰不存在,返回⼤于 0 则表⽰存在。但是,⼀般我们会使⽤更加简洁的 in 关键字来判断,直接返回 True或 False。
切⽚操作
在前⾯字符串章节,提到过字符串的切⽚操作,对于列表的切⽚操作和字符串类似。
切⽚是 Python 序列及其重要的操作,适⽤于列表、元组、字符串等等。切⽚的格式如下:
切⽚ slice 操作可以让我们快速提取⼦列表或修改。标准格式为:[起始偏移量 start:终⽌偏移量 end[:步长 step]]
注:当步长省略时顺便可以省略第⼆个冒号
切⽚操作时,起始偏移量和终⽌偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量⼩于 0 则会当做 0,终⽌偏移量⼤于“长度-1”会被当成”长度-1”
列表排序
修改原列表,不建新列表的排序
建新列表的排序
我们也可以通过内置函数 sorted()进⾏排序,这个⽅法返回新列表,不对原列表做修改。
reversed()返回迭代器
内置函数 reversed()也⽀持进⾏逆序排列,与列表对象 reverse()⽅法不同的是,内置函数
reversed()不对原列表做任何修改,只是返回⼀个逆序排列的迭代器对象。
打印输出 b 发现提⽰是:list_reverseiterator。也就是⼀个迭代对象。同时,我们使⽤list(b)进⾏输出,发现只能使⽤⼀次。第⼀次输出了元素,第⼆次为空。那是因为迭代对象在第⼀次时已经遍历结束了,第⼆次不能再使⽤。(类似游标指针)
python新手代码大全pdf
列表相关的其他内置函数汇总
元组 tuple
列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的
元素。因此,元组没有增加元素、修改元素、删除元素相关的⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。