学习了如何创建简单的列表,学习了如何操作列表元素。下面就是学习如何【遍历】整个列表。
遍历整个列表
我们经常需要遍历整个列表的元素,对每个元素执行相同的操作。那可以使用Python中的【for循环】。
代码示例:
magicians = ['alice','david','carolina']
for magician in magicians: #这行代码让Python从列表magicians中取出一个名字,并将其存储在变量magician中。最后让Python打印前面存储在变量magician中的名字。
print ( magician )
显示结果如下:
alice
david
carolina
[Finished in 0.1s]
在for循环中,想包含多少行代码都可以。在代码行 for magician in magicians后面,每个缩进的代码行都是循环的一部分。且将针对列表中的每个值都执行一次。所以,可对列表中的每个值执行任意次数的操作。
在for循环中,想包含多少行代码都可以,实际上,你会发现使用for循环对每个元素执行众多不同的操作很有用。
在for循环后面,没有缩进的代码都只执行一次,而不会重复执行。
使用for循环处理数据是一种对数据集执行整体操作的不错的方式。
在for循环中,避免缩进错误。
Python根据缩进来判断代码行与前面一个代码行的关系。
for循环后面遗漏了冒号:
for语句末尾的冒号告诉Python,下一行是循环的第一行。
示例代码:
magicians = ['alice','david','carolina']
for magician in magicians #后面漏掉了冒号【:】
print ( magician )
显示报错:
SyntaxError: invalid syntax #无效的语法。
创建数字列表
列表非常适合用于存储数字集合。
Python函数range()能够轻松生成一系列的数字。
代码示例:
for value in range (1,5): #需要有冒号【:】
print (value)
代码示例:
2
3
4
[Finished in 0.0s]
使用函数range()函数创建数字列表时需要配合函数list()函数一起使用
使用list()函数将range()的结果直接转换为列表。也就是说,将range()作为list()的参数,输出为一个数字列表。
代码示例:
numbers = list(range(1,7))
print (numbers)
结果如下:
[1, 2, 3, 4, 5, 6]
[Finished in 0.1s]
使用函数range()时,还可以指定步长。例如下面,代码打印1-10的偶数:
numbers = list(range(2,11,2))
print (numbers)
结果如下:
[2, 4, 6, 8, 10]
[Finished in 0.1s]
使用range()函数几乎能够创建任何需要的数字集,例如,如何创建一个列表,其中包含前10个整数【1–10】的平方呢?
代码示例:
squares = []
for square in range (1,11):
square=square**2
squares.append(square)
print(squares)
结果如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[Finished in 0.0s]
或者还可以如下代码:
squares = []
for square in range (1,11):
squares.append(square**2)
print(squares)
结果显示如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[Finished in 0.1s]
对数字列表执行简单的统计计算
有几个专门用于处理Python数字列表的函数。
数字列表的最大值,最小值,总和:
代码示例:
squares = []
for square in range (1,11):
squares.append(square**2)
print(squares)
print (max(squares)) #显示列表最大值
print (min(squares)) #显示列表最小值
print (sum(squares)) #显示列表和
结果显示:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
100
1
385
[Finished in 0.0s]
列表解析
前面介绍生成squares列表,包含了四五行代码,而列表解析让我们只需要一行代码即可生成这样的列表。
列表解析,将for循环和创建新元素的代码合并一行。并自动附加新元素。注意表达式,与for循环中间没有英文符号 。
代码示例:
squares = [value**2 for value in range(1,11)]
print (squares)
显示结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[Finished in 0.0s]
注意列表解析中for循环后面没有英文的冒号。