集合数据类型
Python 语言中有四种集合数据类型:
- 列表(List)
- 元组(Tuple)
- 集合(Set)
- 字典(Dictionary)
选择集合类型时,了解该类型的属性很有用。他们在总体功能上都起着存放数据的作用,却都有着各自的特点。
列表
列表(list)是一个有序且可更改的集合,可以存放任意数据类型,包括列表本身。使用方括号[ ]
来创建一个列表。
list1 = [1, 3.14, "hello", [1, 2, 3]]
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
列表的转换
可以使用工厂函数把其他数据类型转化为list,要求原数据类型是可迭代对象(即能被for循环遍历的),如list、tuple、dict、set、str。
list1 = list("abc")
print(list1, type(list1))
# 输出:['a', 'b', 'c'] <class 'list'>
访问表元素
-
索引
与字符串类似,列表可以通过下标访问列表中的元素,下标从0开始计数。
列表支持正向索引、负向索引。
list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] print(list1[0], list1[3], list1[-2]) # 输出:a d g
-
切片
切片是通过下标访问列表中的元素,切片可以取出一个子列表。
语法格式:
list [ start : end : step ]
- start表示切片的开始位置,默认为0。
- end表示切片的终止位置(但不包含该位置的元素),默认为列表的长度。
- step为切片的步长,默认为1,当省略步长时,可以同时省略后一个冒号;当步长为负数时,表示从end向start取值。
如:
list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] print(list1[0:5]) print(list1[6:3:-1]) # 输出: # ['a', 'b', 'c', 'd', 'e'] # ['g', 'f', 'e']
还可以使用
slice()
函数来切片。语法格式和上面的切片方式类似。list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] x = slice(0, 8, 3) print(list1[x]) # 输出:['a', 'd', 'g']
-
遍历列表
使用
for
循环来遍历列表项:list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] for i in list1: print(i, end=' ') # 输出:a b c d e f g h
添加元素
使用append()
,insert()
,extend()
函数来添加列表元素。
-
append()
函数用于在列表的末尾追加新的元素,无返回值。如:
list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] list1.append("g") print(list1) # 输出:['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'g']
-
insert()
函数用于在列表的中间插入元素,无返回值。
语法格式:
list.insert(index, obj)
其中,index是要插入元素的索引,obj是要插入的元素。如:
list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] list1.insert(3, "i") print(list1) # 输出:['a', 'b', 'c', 'i', 'd', 'e', 'f', 'g', 'h']
-
extend()
函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),无返回值。
注意,extend()内追加的元素必须是可转换为list的类型的元素。
list1 = ["a", "b", "c", "d", "e", "f", "g", "h"] str1 = "hello" list1.extend(str1) print(list1) # 输出:['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'h',