一、操作列表

1、关于列表的基本操作:

  1. 遍历整个列表: ```python magicians = [‘alice’, ‘david’, ‘carolina’] for magician in magicians: 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!”)

  1. **注意:**
  2. - print前的缩进非常重要!(python对缩进与大小写要求严格!)
  3. - 推荐列表名使用复数形式,临时变量用单数。
  4. 2. **避免缩进错误**:
  5. :::tips
  6. 1.python根据缩进(indent)来判断与前一个代码行的关系(与空行无关);<br />2.如上述代码,循环体内的代码总是有着相同的缩进程度,最后一行便不是循环体内成员;<br />3.多余的或缺少缩进,既有可能报错也可能造成逻辑错误(一定要注意),且一定要记得不要忘记冒号。
  7. :::
  8. 3. **使用range()函数**:<br />range()函数能产生一系列的数字:
  9. ```python
  10. for value in range(1,5):
  11. print(value)

这里只打印1~4,因为range()让python从指定的第一个值开始数,并在达到指定的第二个值后停止,不包含第二个值(这里是5)。

  1. 使用list()、range()创建数字列表
    numbers = list(range(1,6))
    print(numbers)
    输出:[1,2,3,4,5]
    使用range()时还可以指定步长:numbers = list(range(2,11,2))从2开始,到11停止(不含11),每次+2
    输出numbers:[2,4,6,8,10]
  2. 对数字列表进行简单统计
    numbers = list(range(1,10**6)) :::tips 1.列表中最小值:min(numbers)
    2.列表中最大值:max(numbers)
    3.列表中数总和:sum(numbers) :::
  1. 列表解析
    列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。 ```python

    按照先前办法打印一个平方数字列表

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

print(squares) #输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

使用列表解析

squares = [value**2 for value in range(1,11)] print(squares) #输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  1. :::tips
  2. 要使用这种语法,首先指定一个描述性的列表名,如squares;<br />然后,指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。<br />在这个示例中,表达式为value**2,它计算平方值。<br />接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。<br />在这个示例中,for循环为for value in range(1,11),它降值1~10提供给表达式value**2<br />注意:这里for语句末尾没有冒号。
  3. :::
  4. <a name="02e4336f"></a>
  5. #### 2、使用列表的一部分:
  6. 1. **切片**:<br />切片指定要使用的**第一个元素索引**和**最后一个元素的索引+1**(不要忘记列表是**从0起**的)。
  7. ```python
  8. players = ['charles', 'martina', 'michael', 'florence', 'eli']
  9. #输出第1~3个元素
  10. print(players[0:3])
  11. #输出第3~4个元素
  12. print(players[2:4])
  13. #输出从开头~第3个元素
  14. print(players[:3])
  15. #输出从第3~末尾个元素
  16. print(players[2:])
  17. #输出从倒数第3~末尾个元素
  18. print(players[-3:])
  1. 遍历切片

    1. players = ['charles', 'martina', 'michael', 'florence', 'eli']
    2. for player in players[:3]:
    3. print(player.title())
    4. #输出:Charles Martina Michael
  2. 复制列表: ```python 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) #输出:[‘pizza’, ‘falafel’, ‘carrot cake’, ‘cannoli’]

print(“\nMy friend’s favorite foods are:”) print(friend_foods) #输出:[‘pizza’, ‘falafel’, ‘carrot cake’, ‘ice cream’] 与上结果不同

  1. ```
  2. 注意:这里不能写成:friend_food = my_food
  3. 这样只是将新变量friend_food关联到包含在my_food中的列表,一次这两个列表都指向同一个列表!
  4. 所以当把'cannoli'添加到my_food中时,它也将出现在friend_food中!

二、元组

  1. 元组:Python将不能修改的值称为不可变的,而不可变的列表被称为元组
  2. 定义元组:dimensions = (200,50) 与列表类似,只是方括号变圆括号
  3. 注意
    1. 试图修改元组内元素的行为是不被允许的(会报错!);
    2. 遍历操作与列表相同;
    3. 虽然我们无法修改元组元素的值,但我们可以重新定义元组:
      dimensions = (200,50)
      dimensions = (400,100)
      这样第一次的定义失效,dimensions元素为400,100。