方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse() 即可。
3.4 使用列表时避免索引错误假设有一个包含三个元素的列表,却要求获取第四个元素:
motorcycles = [\'honda\', \'yamaha\', \'suzuki\'] print(motorcycles[3])这将导致索引错误 :
Traceback (most recent call last): File "motorcycles.py", line 3, in <module> print(motorcycles[3]) IndexError: list index out of range索引错误意味着Python无法理解指定的索引。程序发生索引错误时,请尝试将指定的索引减1,然后再次运行程序,看看结果是否正确。
每当需要访问最后一个列表元素时,都可使用索引-1 。这在任何情况下都行之有效,即便最后一次访问列表后,其长度发生了变化。
4 操作列表 4.3 创建数值列表 4.3.1 使用函数range() for value in range(1, 6): print(value)注意输出不包含第二个值:
1 2 3 4 5函数range()还可指定步长
语法:
输入:
even_numbers = list(range(2,11,2)) print(even_numbers)输出:
[2, 4, 6, 8, 10] 4.3.3 对数字列表执行简单的统计计算 min() max() sum() 4.3.4 列表解析列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
squares = [value**2 for value in range(1,11)] print(squares)输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]等同于:
squares = [] for value in range(1, 11): squares.append(value**2) print(squares) 4.4.3 复制列表要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。
我们在不指定任何索引的情况下从列表my_foods中提取一个切片,从而创建了这个列表的副本,再将该副本存储到变量friend_foods中。
核实我们确实有两个列表:
输出:
My favorite foods are: [\'pizza\', \'falafel\', \'carrot cake\', \'cannoli\'] My friend\'s favorite foods are: [\'pizza\', \'falafel\', \'carrot cake\', \'ice cream\']倘若我们只是简单地将my_foods 赋给friend_foods ,就不能得到两个列表。
4.5 元组列表非常适合用于存储在程序运行期间可能变化的数据集。
列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求。
Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组 。
元组看起来犹如列表,但使用圆括号而不是方括号来标识。
dimensions = (200, 50) dimensions[0] = 250输出:
Traceback (most recent call last): File "dimensions.py", line 3, in <module> dimensions[0] = 250 TypeError: \'tuple\' object does not support item assignment代码试图修改第一个元素的值,导致Python返回类型错误消息。由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值。
4.5.2 遍历元组中的所有值可使用for循环来遍历元组中的所有值。
相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。