第4章. 操作列表

  •  4.1 遍历整个列表
  • 4.1.1 深入研究循环
  • 4.1.2 在 for 循环中执行更多操作
  • 4.1.3 在 for 循环结束后执行一些操作
  • 4.2 避免缩进错误
  • 4.2.1 忘记缩进
  • 4.2.2 忘记缩进额外的代码行
  • 4.2.3 不必要的缩进
  • 4.2.4 循环后不必要的缩进
  • 4.2.5 遗漏了冒号
  • 4.3 创建数值列表
  • 4.3.1 使用函数 range()
  • 4.3.2 使用 range() 创建数字列表
  • 4.3.3 对数字列表执行简单的统计计算
  • 4.3.4 列表解析
  • 4.4 使用列表的一部分
  • 4.4.1 切片
  • 4.4.2 遍历切片
  • 4.4.3 复制列表
  • 4.5 元组
  • 4.5.1 定义元组
  • 4.5.2 遍历元组中的所有值
  • 4.5.3 修改元组变量
  • 4.1 遍历整个列表
1 magicians = ['alice','david','carolina']
2 for magician in magicians:
3     print(magician)

运行结果:

  

 

  • 4.1.2 在 for 循环中执行更多操作

  在 for 循环中,想包含多少行代码都可以。在代码行 for magician in magicians 后面,每个缩进的代码行都是循环的一部分

1 magicians = ['alice','david','carolina']
2 for magician in magicians:
3     print(f"{magician.title()},that was a great trick!")
4     print(f"I can't wait to see you next trick,{magician.title()}.\n")

运行结果:

  

 

  • 4.1.3 在 for 循环结束后执行一些操作

  在 for 循环后面,没有缩进的代码都只执行一次,不会重复执行。

1 magicians = ['alice','david','carolina']
2 for magician in magicians:
3     print(f"{magician.title()},that was a great trick!")
4     print(f"I can't wait to see you next trick,{magician.title()}.\n")
5 print("Thank you, everyone.")

运行结果:

  

 

  • 4.2 避免缩进错误

  Python 根据缩进来判断代码行与前一个代码行的关系。

 

  • 4.2.2 忘记缩进额外的代码行

for 循环中的局部变量竟然在退出循环后仍然可用

1 magicians = ['alice','david','carolina']
2 for magician in magicians:
3     print(f"{magician.title()},that was a great trick!")
4 print(f"I can't wait to see you next trick,{magician.title()}.\n")
5 print(magician)

运行结果:

  

 

  • 4.2.5 遗漏了冒号

  for 语句末尾的冒号告诉 Python,下一行是循环的第一行。

 

  • 4.3.1 使用函数 range

  函数 range() 让 Python 从指定的第一个值开始数,并在到达你指定的第二个值时停止。因为它在第二个值处停止,所以输出不包含第二个值

1 for val in range(1,5):
2     print(val)

运行结果:

  

  调用 range() 时,也可以只指定一个参数,这样它将从 0 开始。例如,range(6) 返回0~5

 

  • 4.3.2 使用 range() 创建数字列表

  要创建数字列表,可使用函数 list() 将 range() 的结果直接转换为列表。

1 nums = list(range(1,6))
2 print(nums)

运行结果:

  

 

  使用函数 range() 时,还可指定步长。可给 range() 指定第三个参数

1 nums = list(range(2,12,2))
2 print(nums)

运行结果:

  

range() 从 2 开始数,然后不断加 2,直到达到或超过终值(12)

 

  • 4.3.3 对数字列表执行简单的统计计算

  最小值,最大值,总和

1 nums = [1,2,3,4,5,6,7,8,9,0]
2 print(min(nums))
3 print(max(nums))
4 print(sum(nums))

运行结果:

  

 

  • 4.3.4 列表解析★★★

示例:

1 squares = [val**2 for val in range(1,11)]
2 print(squares)

运行结果:

  

  要使用这种语法,首先指定一个描述性的列表名,如 squares。然后,指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。在这个示例中,表达式为 val**2,它计算平方值。接下来,编写一个 for 循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为 for val in range(1,11),它将值 1~10 提供给表达式 val**2,。请注意,这里的 for 语句末尾没有冒号

 

  • 4.4 使用列表的一部分

  列表的部分元素,Python 称之为切片。

 

  • 4.4.1 切片

  要创建切片,可指定要使用的第一个元素和最后一个元素的索引与函数 range() 一样,Python 在到达第二个索引之前的元素后停止

  切片也是一个列表。

  如果没有指定第一个索引,Python 将自动从列表开头开始。如果没有指定第二个索引,切片终止于列表末尾

  可在表示切片的方括号内指定第三个值。表示在指定范围内每隔多少元素提取一个

1 examples = ['a','b','c','d','e','f','g']
2 print(examples[0:3])  # 切片用方括号
3 print(examples[:4])
4 print(examples[-3:])
5 print(examples[0:5:2])

运行结果:

  

 

  • 4.4.2 遍历切片
1 players = ['charles','martina','michael','florence','eli']
2 for player in players[:3]:
3     print(player.title()) 

运行结果:

  

 

  • 4.4.3 复制列表

  要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引 [ : ]

1 my_foods = ['pizza','falafel','carrot cake']
2 friend_foods = my_foods[:]
3 my_foods.append('cannoli')
4 friend_foods.append('ice cream')
5 print(my_foods)
6 print(friend_foods)

运行结果:

  

结果表明“my_foods”和“friend_foods”确实是两个不同的列表

  如果只是将“my_foods”赋给“friend_foods”,就不能得到两个列表

1 my_foods = ['pizza','falafel','carrot cake']
2 friend_foods = my_foods
3 my_foods.append('cannoli')
4 friend_foods.append('ice cream')
5 print(my_foods)
6 print(friend_foods)

运行结果:

  

  输出表明,两个列表是相同的。

  这里将“my_foods”赋给“friend_foods”,而不是将“my_foods”的副本赋给“friend_foods”。这两个变量指向同一个列表

 

  • 4.5 元组

  Python 将不能修改的值称为不可变的,而不可变的列表被称为元组

 

  • 4.5.1 定义元组

  元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可使用索引(方括号+数字)来访问其元素,就像访问列表元素一样。

1 dimensions = (200,50)
2 print(dimensions[0])
3 print(dimensions[1])

运行结果:

  

  如果你要定义只包含一个元素的元组,必须在这个元素后面加上逗号

1 my_t = (3,) # 不加逗号,下面访问的语句会报错
2 print(my_t[0]) 

运行结果:

  

 

  • 4.5.2 遍历元组中的所有值
1 dimensions = (200,50)
2 for dimension in dimensions:
3     print(dimension)

运行结果:

  

 

  • 4.5.3 修改元组变量

  虽然不能修改元组的元素,但可以给存储元组的变量赋值。如果要修改元组,可重新定义整个元组

  给元组变量重新赋值是合法的

1 dimensions = (200,50)
2 print(dimensions)
3 dimensions = (400,100)
4 print(dimensions)

运行结果:

  

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

posted @ 2023-06-04 21:21  我会变强的  阅读(22)  评论(0)    收藏  举报