4.1 遍历整个列表
1 | names = ["zhang", "li", "wang", "chen"] |
输出结果为:
1 | zhang |
4.1.1 深入研究循环
在编写for循环时,可以给依次与列表中每个值相关联的临时变量指定任意名称。选择描述单个列表元素的有意义名称大有脾益。这些命名约定有助于你明白for循环中将对每个元素执行的操作。使用单数和复数式的名称,可以帮助砍断代码段处理的是单个列表元素还是整个列表。
1 | for cat in cats: |
4.1.2 在for循环中执行更多操作
1 | names = ["zhang", "li", "wang", "chen"] |
输出结果为:
1 | my name is zhang |
每个缩进的代码都是循环的一部分,将针对列表中的每个值都执行一次。
4.1.3 在for循环结束后执行一些操作
1 | names = ["zhang", "li", "wang", "chen"] |
输出结果为:
1 | my name is zhang |
4.2 避免缩进错误
Python根据缩进来判断代码行与前一个代码行的关系。Python通过使用缩进让代码更易读。简单地说,它要求你使用缩进让代码整洁而结构清晰。
4.3 创建数值列表
列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。
4.3.1 使用函数range()
Python函数range()让你能够轻松地生成你系列数。
1 | for number in range(1, 5): |
输出结果为:
1 | 1 |
函数range()让Python从指定的第一个值开始数,并在到达指定的第二个值时停止。因为它在第二个值处停止,所以输出不包含该值。
调用函数range()时,也可只指定一个参数,这样它将从0开始。例如,range(6)返回数0~5。
4.3.2 使用range()创建数字列表
要创建数字列表,可以使用函数list()将range()的结果直接转换为列表。
1 | numbers = list(range(1, 6)) |
输出结果为:
1 | [1, 2, 3, 4, 5] |
使用函数range()时,还可指定步长。
1 | even_numbers = list(range(2, 11, 2)) |
输出结果为:
1 | [2, 4, 6, 8, 10] |
4.3.3 对数字列表执行简单的统计计算
有几个专门用于处理数字列表的Python函数。可以轻松地找出数字列表的最大值、最小值和总和:
1 | numbers = [1, 2, 3, 4, 5, 6, 7, 8] |
输出结果为:
1 | 1 |
4.3.4 列表解析
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
1 | squares = [number**2 for number in range(1,11)] |
输出结果为:
1 | [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] |
4.4 使用列表的一部分
处理列表的部分元素,Python称之为切片
4.4.1 切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python在到达第二个索引之前的元素后停止。要输出列表中的前三个元素,需要指定索引0和3,这将返回索引为0、1和2的元素。
1 | numbers = [1, 2, 3, 4, 5, 6] |
输出结果为:
1 | [1, 2, 3] |
如果没有指定第一个索引,Python将自动从列表开头开始;要让切片终止于列表末尾,也可使用类似的语法。
负数索引返回离列表末尾相应距离的元素,因此可以输出列表末尾的任意切片。
1 | numbers = [1, 2, 3, 4, 5, 6] |
输出结果为:
1 | [4, 5, 6] |
可在表示切片的方括号内指定第三值。这个值告诉Python在指定范围内每隔多少元素提取一个。
4.4.2 遍历切片
1 | numbers = [1, 2, 3, 4, 5, 6] |
输出结果为:
1 | 2 |
4.4.3 复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即整个列表的副本。
1 | numbers = [1, 2, 3, 4, 5, 6] |
输出结果为:
1 | [1, 2, 3, 4, 5, 6] |
不能直接将整个列表赋给另一个变量,因为列表是引用类型,将导致两个名称都引用同一个列表,而不是将列表的副本赋给新的列表变量。
1 | numbers = [1, 2, 3, 4, 5, 6] |
输出结果为:
1 | [1, 2, 3, 4, 5, 6, 7] |
4.5 元组
Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
4.5.1 定义元组
元组看起来很像列表,但使用圆括号而非中括号来标识。
1 | dimensions = (200, 50) |
输出结果为:
1 | 200 |
严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果要定义只包含一个元素的元组,必须在这个元素后面加上逗号:
1 | numbers = (8,) |
创建只包含一个元素的元组通常没有意义,但自动生成的元组可能只有一个元素。
4.5.2 遍历元组中的所有值
1 | numbers = (1, 2, 3) |
输出结果为:
1 | 1 |
4.5.3 修改元组变量
虽然不能修改元组的元素,但可以给存储元组的变量赋值。
1 | numbers = (1, 2, 3) |
输出结果为:
1 | (1, 2, 3) |
如果需要存储的一组值在程序的整个生命周期内都不变,就可以使用元组。