Python 列表、字典、元组
列表
相当于java中的list集合,列表 是由多个值组成的序列。在字符串中,每个值都是字符; 在列表中,值可以是任何数据类型。列表中的值称为 元素(element) ,有时也被称为 项(item) 。
列表的创建
最简单的方法是用方括号( [
和 ]
)将元素包括起来:
[10, 20, 30, 40]
['crunchy frog', 'ram bladder', 'lark vomit']
下面的列表包含一个字符串、一个浮点数、一个整数和另一个列表:
['spam', 2.0, 5, [10, 20]]
一个不包含元素的列表被称为空列表;你可以用空的方括号 []
创建一个空列表。
>>> cheeses = ['Cheddar', 'Edam', 'Gouda']
>>> numbers = [42, 123]
>>> empty = []
>>> print(cheeses, numbers, empty)
['Cheddar', 'Edam', 'Gouda'] [42, 123] []
列表是可变的
和字符串不同的是,列表是可变的。当括号运算符出现在赋值语句的左边时,它就指向了列表中将被赋值的元素。
>>> numbers = [42, 123]
>>> numbers[1] = 5
>>> numbers
[42, 5]
in
运算符在列表中同样可以使用。
>>> cheeses = ['Cheddar', 'Edam', 'Gouda']
>>> 'Edam' in cheeses
True
>>> 'Brie' in cheeses
False
遍历列表
最常用的遍历列表的方式是使用for循环。语法和字符串遍历类似:
for cheese in cheeses:
print(cheese)
然而,如果你想要写入或者更新列表中的元素,你需要通过下标访问。一种常用的方法是结合内置函数 range
和 len
:
for i in range(len(numbers)):
numbers[i] = numbers[i] * 2
对一个空列表执行for循环时,将不会执行循环的主体:
for x in []:
print('This never happens.')
列表操作
+运算符拼接多个列表:
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a + b
>>> c
[1, 2, 3, 4, 5, 6]
运算符 * 以给定次数的重复一个列表:
>>> [0] * 4
[0, 0, 0, 0]
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
列表切片
>>> t = ['a', 'b', 'c', 'd', 'e', 'f']
>>> t[1:3]
['b', 'c']
>>> t[:4]
['a', 'b', 'c', 'd']
>>> t[3:]
['d', 'e', 'f']
如果你省略第一个索引,切片将从列表头开始。如果你省略第二个索引,切片将会到列表尾结束。 所以如果你两者都省略,切片就是整个列表的一个拷贝。
由于列表是可变的,通常在修改列表之前,对列表进行拷贝是很有用的。
切片运算符放在赋值语句的左边时,可以一次更新多个元素:
>>> t = ['a', 'b', 'c', 'd', 'e', 'f']
>>> t[1:3] = ['x', 'y']
>>> t
['a', 'x', 'y', 'd', 'e', 'f']
列表方法
Python为列表提供了一些方法. 例如, append
添加一个新元素到列表的末端:
>>> t = ['a', 'b', 'c']
>>> t.append('d')
>>> t
['a', 'b', 'c', 'd']
extend
将接受一个列表作为参数,并将其其中的所有元素添加至目标列表中:
>>> t1 = ['a', 'b', 'c']
>>> t2 = ['d', 'e']
>>> t1.extend(t2)
>>> t1
['a', 'b', 'c', 'd', 'e']
sort
将列表中的元素从小到大进行排序
>>> t = ['d', 'c', 'e', 'b', 'a']
>>> t.sort()
>>> t
['a', 'b', 'c', 'd', 'e']