roman_日积跬步-终至千里

roman_日积跬步-终至千里

一. 遍历整个列表

if __name__ == '__main__':
    magicians = ['alice', 'david', 'carolina']
    for magician in magicians:
        print(magician)

 

1. 在for循环中执行更多操作

if __name__ == '__main__':
    magicians = ['alice', 'david', 'carolina']
    for magician in magicians:
        print(f"{magician.title()}, that was a great trick")
        

 

2. 在for循环结束后执行一些操作

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

if __name__ == '__main__':
    magicians = ['alice', 'david', 'carolina']
    for magician in magicians:
        print(f"{magician.title()}, that was a great trick")
    print("Thank you。")

 

二. 避免缩进错误

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

下面来看一些较为常见的缩进错误。

忘记缩进
对于位于for语句后面且属于循环组成部分的代码行,一定要缩进。

忘记缩进额外的代码行:

  magicians = ['alice', 'david', 'carolina']
  for magician in magicians:
      print(f"{magician.title()}, that was a great trick!")
  print(f"I can't wait to see your next trick, {magician.title()}.\n") # 也需要进行缩进

 
不必要的缩进
函数调用print()(见❶)无须缩进,因为它并非循环的组成部分。

  message = "Hello Python world!"print(message)

【python基础(三)】操作列表:for循环、正确缩进、切片的使用、元组-LMLPHP
 
遗漏了冒号
for语句末尾的冒号告诉Python,下一行是循环的第一行。

  magicians = ['alice', 'david', 'carolina']for magician in magicians
      print(magician)

如果不小心遗漏了冒号,如❶所示,将导致语法错误,因为Python不知道你意欲何为。

 

三. 创建数值列表

1. 使用函数range()

for value in range(1, 5):
    print(value)

它不会打印5,只有1到4。

 

2. 使用range()创建数字列表

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

numbers = list(range(1, 6))
print(numbers)

 

3. 指定步长。

为此,可给这个函数指定第三个参数,看一个例子:
打印1~10的偶数:

even_numbers = list(range(2, 11, 2))
print(even_numbers)

 
创建一个列表,其中包含前10个整数(1~10)的平方

  squares = []
  for value in range(1,11):
❶     squares.append(value**2)

  print(squares)

 

4. 对数字列表执行简单的统计计算

最小、最大、总和。

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45

 

5. 列表解析

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

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

 

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

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

1. 切片

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

  players = ['charles', 'martina', 'michael', 'florence', 'eli']print(players[0:3])

# ['charles', 'martina', 'michael']

如果没有指定第一个索引,Python将自动从列表开头开始:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])

如果要提取从第三个元素到列表末尾的所有元素,可将起始索引指定为2,并省略终止索引:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])

如果要输出名单上的最后三名队员,可使用切片players[-3:]:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])

 

2. 遍历切片

遍历前三名队员,并打印他们的名字:

  players = ['charles', 'martina', 'michael', 'florence', 'eli']

  print("Here are the first three players on my team:")for player in players[:3]:
      print(player.title())

 

3. 复制列表(浅拷贝与深拷贝)

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

❶ my_foods = ['pizza', 'falafel', 'carrot cake']
❷ friend_foods = my_foods[:]

  print("My favorite foods are:")
  print(my_foods)

  print("\nMy friend's favorite foods are:")
  print(friend_foods)

如果只是将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', 'ice cream']

# My friend's favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

这种语法实际上是让Python将新变量friend_foods关联到已与my_foods相关联的列表,因此这两个变量指向同一个列表。类似于浅拷贝。

 

4. 元组

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

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

❶ dimensions = (200, 50)print(dimensions[0])
  print(dimensions[1])
dimensions = (200, 50)
for dimension in dimensions:
    print(dimension)

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

❶ dimensions = (200, 50)
  print("Original dimensions:")
  for dimension in dimensions:
      print(dimension)

❷ dimensions = (400, 100)print("\nModified dimensions:")
  for dimension in dimensions:
      print(dimension)

 

参考:《Python编程:从入门到实践(第二版)》

11-23 00:33