3.1 列表和元组
除字符串以外,Python还有另外两种序列结构:元组和列表。他们都可以包换0个或多个元素,元组并不要求所含元素的种类相同,每个元素可以是各种类型的Python对象。
元组是不可变的。
列表是可变的。
3.2 列表
列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时。在列表中,具有相同值的元素可以重复出现多次。
3.2.1 使用[]或list()创建列表
todos_list = ['get gloves', 'get mask', 'get cat vitamins', 'call ambulance']
也可以使用list():
another_list = list()
print(another_list)
输出:
[]
如果你只想要记录一些互相不相同的值,集合(set)会是一个更好的选择。
3.2.2 使用list()将其他数据类型转换成列表
Python中的list()可以将其他的数据类型转换成列表类型。
print(list('cat'))
输出:
[‘c’, ‘a’, ‘t’]
将一个元组转换成列表:
a_tuple = ('ready','fire','aim')
print(list(a_tuple))
输出:
[‘ready’, ‘fire’, ‘aim’]
使用split()可以根据分隔符将字符串切割成由若干子串组成的列表(如果待分割的字符串里包含连续的分隔符,返回的列表会出现空元素):
birthday = '30/7/1996'
print(birthday.split('/'))
输出:
[‘30’, ‘7’, ‘1996’]
3.2.3 使用[offset]获取元素
和字符串一样可以通过偏移量提取对应位置的元素,同样负偏移量代表从尾部开始计数。
3.2.4 包含列表的列表
列表可以包含各种类型的元素,包括其他列表:
small_birds = ['humiingbird','finch']
extinct_birds = ['dodo','passenger pieon','Norwgian Blue']
carol_birds = [3,'Fernch hens',2,'turtledoves']
all_birds = [small_birds,extinct_birds,carol_birds]
print(all_birds)
输出:
[[‘humiingbird’, ‘finch’], [‘dodo’, ‘passenger pieon’, ‘Norwgian Blue’], [3, ‘Fernch hens’, 2, ‘turtledoves’]]
访问第一个元素:
print(all_birds[0])
输出:
[‘humiingbird’, ‘finch’]
访问第二个元素的第一个元素:
print(all_birds[1][0])
输出:
dodo
3.2.5 使用[offset]修改元素
可以通过赋值对其进行修改,列表的偏移量必须合法:
extinct_birds = ['dodo','passenger pieon','Norwgian Blue']
extinct_birds[2]='unknown'
print(extinct_birds)
输出:
[‘dodo’, ‘passenger pieon’, ‘unknown’]
3.2.6 指定范围并用切片提取元素
使用切片提取列表的一个子序列:
extinct_birds = ['dodo','passenger pieon','Norwgian Blue']
print(extinct_birds[0:2])
输出:
[‘dodo’, ‘passenger pieon’]
与字符串相同,列表也可以设置步长:
print(extinct_birds[::2])
输出:
[‘dodo’, ‘Norwgian Blue’]
实现列表逆序:
print(extinct_birds[::-1])
输出:
[‘Norwgian Blue’, ‘passenger pieon’, ‘dodo’]
3.2.7 使用append()添加元素至尾部
extinct_birds = ['dodo','passenger pieon','Norwgian Blue']
extinct_birds.append('unknown')
print(extinct_birds)
输出:
[‘dodo’, ‘passenger pieon’, ‘Norwgian Blue’, ‘unknown’]
3.2.8 使用extend()或+=合并列表
使用extend()可以将一个列表合并到另外一个列表中:
marxes = ['Groucho','Chico','Harpo','Zeppo']
others = ['Gummo','Karl']
marxes.extend(others)
print(marxes)
输出:
[‘Groucho’, ‘Chic