目录
列表(list), 元组(tuple),集合(set)和字典(dict),及字符串(str)等
序列类型相对于其他语言中的近似类型,Python的序列类型功能要强大的多
1. 列表(list)
列表是Python中内置有序(元素之间在位置上有序,元素间排序要看实际情况)、可变序列,列表的所有元素放在一对中括号“[ ]”中,并使用逗号分隔开;
当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙;
在Python中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元组、字典、集合以及其他自定义类型的对象(对比一下数组和对象数组)。
1.1 列表的常用方法
1.1.1 元素增加
1.1.3 元素删除
1.1.3 元素的访问和计数
1.2 切片
切片适用于列表、元组、字符串、range对象等类型,但作用于列表时功能最强大。可以使用切片来截取列表中的任何部分,得到一个新列表,也可以通过切片来修改和删除列表中部分元素,甚至可以通过切片操作为列表对象增加元素。
切片使用2个冒号分隔的3个数字来完成,[a:b:c]
第一个数字 a 表示切片开始位置(默认为0)。
第二个数字 b 表示切片截止(但不包含)位置(默认为列表长度)。
第三个数字 c 表示切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号。
切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表,代码具有更强的健壮性。¶
1.3 排序(使用sort方法)
2. 元组
定义在一对 ( ) 中
元组与列表类似,但元素不能改变其ID,实质上就是不能变换其内存地址¶
元组一旦定义就不允许整体性更改任意一个元素,因为这样事实上改变了这个元素的内存地址。
元组没有append()、extend()和insert()等方法,无法向元组中添加元素。
元组没有remove()或pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素。
从效果上看,tuple()冻结列表,而list( )融化元组。
3. zip函数和可迭代对象
zip函数的原型为:zip([iterable, …])
zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。
如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。
参数iterable为可迭代的对象,并且可以有多个参数。迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象,迭代器从可迭代对象的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退。
该函数返回一个以元组为元素的迭代对象,其中第 i 个元组包含每个参数序列的第 i 个元素。
返回的对象长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的可迭代对象。没有参数时,它返回一个空的迭代对象。
4. 字典
字典是无序、可变序列。
定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{}”中。
字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。
4.2 字典的方法
4.3 字典与zip函数
5. 集合 set
集合是无序、可变序列,使用一对大括号界定,元素不可重复,同一个集合中每个元素都是唯一的。
集合中只能包含数字、字符串、元组等不可变类型(或者说可哈希)的数据,而不能包含列表、字典、集合等可变类型的数据。
5.1 集合的操作方法