本章学习如何遍历整个列表。具体而言,包括以下部分:

  • 遍历整个列表
  • 创建数值列表
  • 使用列表的一部分
  • 元组
  • 设置代码格式
  • 小结

Python同时遍历两个变量 python两层list遍历_如何把元组变成列表

遍历整个列表

遍历整个列表的所有元素,对每个元素执行相同的操作,可使用Python中的for循环。

在for循环中,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。

 !千万不要遗漏for循环的冒号

magicians.py

magicians = ['alice', 'david', 'carolina']"""使用for循环遍历整个列表"""for magician in magicians: # 此处冒号很重要    print(magician) # 对于for循环语句后面且属于循环组成部分的代码行,一定要缩进    print(magician.title() + ", that was a great trick!")    print("I can't wait to see your next trick, " + magician.title() + ".\n")print("Thank you, everyone. That was a great magic show!") #对于只执行一次的代码行,请勿错误缩进

创建数值列表

Python函数range( )能轻松生成一系列的数字,但应注意差一行为,即函数range( ) 让Python从第一个值开始数,并在达到指定的第二个值后停止,因此输出不包含第二个值。例如range(1,5)中不包含数字5。

函数list()将range( )的结果直接转换为列表。如果将range()作为list()的参数,输出将为一个数字列表。

使用函数range( )可以制定步长。例如,打印1~10内的奇数使用代码print(list(range(1,11,2))),其中2为步长,即从1开始数,不断加2。

列表解析:将for循环和创建新元素的代码合并成一行,并自动附加新元素。

numbers.py

for value in range(1,5): # 打印数字1~4    print(value)"""使用range( )创建数字列表"""numbers = list(range(1,6))print(numbers)even_numbers = list(range(2,11,2)) #指定步长,打印1~10内的偶数print(even_numbers)# 创建一个包含1~10的平方的列表squares = []for value in range(1,11):    squares.append(value**2)print(squares)"""列表解析"""squares = [value**2 for value in range(1,11)]print(squares)"""对数字列表执行简单的统计计算"""digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(min(digits))print(max(digits))print(sum(digits))

使用列表的一部分---切片

切片:列表的部分元素

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。没有指定第一个索引,将自动从列表开头开始;省略终止索引,可让切片终止于列表末尾。负数索引返回离列表末尾相应距离的元素。

遍历列表的部分元素,可在for循环中使用切片。

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:]),这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。

players.py

players = ['charles', 'martina', 'michael', 'florence', 'eli']print(players[0:3]) # 打印前三名队员print(players[:4]) # 打印第一个到第四个队员print(players[2:]) # 打印第三个到最后一个队员print(players[-3:]) # 打印最后三名队员"""遍历切片"""print("Here are the first three players on my team:")for player in players[:3]:    print(player.title())"""复制列表"""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)

元组

元组:不可变的列表

元组使用圆括号来标识。定义元组后,就可以使用索引来访问其元素。

使用for循环来遍历元组中的所有值。

dimensions.py

dimensions = (200, 50)print(dimensions[0])print(dimensions[1])# 修改元组的操作是被禁止的,如dimensions[0] = 250这个代码将报错"""遍历元组中的所有值"""for dimension in dimensions:    print(dimension)"""修改元组变量---给存储元组的变量赋值"""print("Original dimensions:")for dimension in dimensions:    print(dimension)dimensions = (400, 100)print("\nModified dimensions:")for dimension in dimensions:    print(dimension)

设置代码格式

建议每级缩进都使用四个空格,这既可以提高可读性,又留下了足够的多级缩进空间。如果混合使用了制表符和空格,可将文件中所有的制表符转换为空格。

建议每行代码不超过80字符,因为在大多数计算机中,终端窗口每行只能容纳79字符。建议注释的行长不超过72字符。

将程序的不同部分分开,可使用空行。空行不能滥用。

小结

本章学习内容:如何高效地处理列表中的元素;如何使用for循环遍历列表,Python如何根据缩进来确定程序的结构以及如何避免一些常见的缩进错误;如何创建简单的数字列表,以及可对数字列表执行的一些操作;如何通过切片来使用列表的一部分和复制列表;元组(它对不应变化的值提供了一定程度的保护)以及在代码变得越来越复杂时如何设置格式,使其便于阅读。

下章即将学习的内容:如何使用if语句在不同的条件下采取不同的措施;如何将一组较复杂的条件测试组合起来,并在满足特定条件时采取相应的措施;如何在遍历列表时,通过使用if语句对特定元素采取特定的措施。