《Python编程:从入门到实践》2-9章 笔记 (3)

方法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()还可指定步长
语法:

range(start, stop[, step])

输入:

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_foods = [\'pizza\', \'falafel\', \'carrot cake\'] friend_foods = my_foods[:] my_foods.append(\'cannoli\') friend_foods.append(\'ice cream\') print("My favorite foods are:") print(my_foods) print("\nMy friend\'s favorite foods are:") print(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将不能修改的值称为不可变的 ,而不可变的列表被称为元组

4.5.1 定义元组

元组看起来犹如列表,但使用圆括号而不是方括号来标识。

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循环来遍历元组中的所有值。
相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

4.6 设置代码格式 4.6.1 格式设置指南

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfppd.html