一、操作列表
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!”)
**注意:**
- print前的缩进非常重要!(python对缩进与大小写要求严格!)
- 推荐列表名使用复数形式,临时变量用单数。
2. **避免缩进错误**:
:::tips
1.python根据缩进(indent)来判断与前一个代码行的关系(与空行无关);<br />2.如上述代码,循环体内的代码总是有着相同的缩进程度,最后一行便不是循环体内成员;<br />3.多余的或缺少缩进,既有可能报错也可能造成逻辑错误(一定要注意),且一定要记得不要忘记冒号。
:::
3. **使用range()函数**:<br />range()函数能产生一系列的数字:
```python
for value in range(1,5):
print(value)
这里只打印1~4,因为range()让python从指定的第一个值开始数,并在达到指定的第二个值后停止,不包含第二个值(这里是5)。
- 使用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]
- 对数字列表进行简单统计:
numbers = list(range(1,10**6))
:::tips 1.列表中最小值:min(numbers)
2.列表中最大值:max(numbers)
3.列表中数总和:sum(numbers) :::
- 列表解析:
列表解析将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]
:::tips
要使用这种语法,首先指定一个描述性的列表名,如squares;<br />然后,指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。<br />在这个示例中,表达式为value**2,它计算平方值。<br />接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。<br />在这个示例中,for循环为for value in range(1,11),它降值1~10提供给表达式value**2<br />注意:这里for语句末尾没有冒号。
:::
<a name="02e4336f"></a>
#### 2、使用列表的一部分:
1. **切片**:<br />切片指定要使用的**第一个元素索引**和**最后一个元素的索引+1**(不要忘记列表是**从0起**的)。
```python
players = ['charles', 'martina', 'michael', 'florence', 'eli']
#输出第1~3个元素
print(players[0:3])
#输出第3~4个元素
print(players[2:4])
#输出从开头~第3个元素
print(players[:3])
#输出从第3~末尾个元素
print(players[2:])
#输出从倒数第3~末尾个元素
print(players[-3:])
遍历切片:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
print(player.title())
#输出:Charles Martina Michael
复制列表: ```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’] 与上结果不同
```
注意:这里不能写成:friend_food = my_food
这样只是将新变量friend_food关联到包含在my_food中的列表,一次这两个列表都指向同一个列表!
所以当把'cannoli'添加到my_food中时,它也将出现在friend_food中!
二、元组
- 元组:Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
- 定义元组:
dimensions = (200,50)
与列表类似,只是方括号变圆括号。 - 注意:
- 试图修改元组内元素的行为是不被允许的(会报错!);
- 遍历操作与列表相同;
- 虽然我们无法修改元组元素的值,但我们可以重新定义元组:
dimensions = (200,50)
dimensions = (400,100)
这样第一次的定义失效,dimensions元素为400,100。