python基础:操作列表
一、遍历列表
对每个元素执行相同的操作,使列表中的元素一个一个的输出。
magicians = ['alice', 'david', 'caroline']
for magician in magicians:print(magician)
'''
结果:
alice
david
caroline
'''
在 for 循环中,可以对每个元素执行任意操作。
magicians = ['alice', 'david', 'caroline']
for magician in magicians:print(f"{magician.title()}, that was a great trick!")
'''
结果:
Alice, that was a great trick!
David, that was a great trick!
Caroline, that was a great trick!
'''
二、创建数值列表
1. 使用range()函数
range() :生成一系列的数。
在这个示例中,range() 只打印数 1~4,这是编程语言中常见的差一行为的结果。range() 函数让 Python 从指定的第一个值开始数,并在到达指定 的第二个值时停止,因此输出不包含第二个值(这里为 5)。
for value in range(1,5):print(value)
'''
结果:
1
2
3
4
'''
2. 使用 range() 创建数值列表
list() :将 range() 的结果直接转换为列表。
numbers = list(range(1,11))
print(numbers)'''
结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
'''
使用 range() 函数时,还可指定步长。
在这个示例中,range() 函数从 2 开始数,然后不断地加 2,直到达到或超过终值(11)。
even_numbers = list(range(2,11,2))
print(even_numbers)
# 结果:[2, 4, 6, 8, 10]
创建一个名为 squares 的空列表。接下来,使用 range() 函数让 Python 遍历 1~10 的值。在循环中,计算当前值的平方,并将结果赋给变量 square。然后,将新计算得到的平方值追加到列表 squares 的末尾。循环结束后,打印列表 squares:
squares = []
for value in range(1, 11):square = value**2squares.append(square)
print(squares)
'''
结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]'''
3. 对数值列表执行简单的统计计算
min():求最小值,max():求最大值,sum():求总和
>>> digits=[1,2,4,5,6,7,8]
>>> min(digits)
1
>>> max(digits)
8
>>> sum(digits)
33
4. 列表推导式
列表推导式(list comprehension)将 for 循环和创建新元素的代码合并成一行,并自动追加新
元素。
squares = [value**2 for value in range(1,11)]
print(squares)
'''
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]'''
三、使用列表
1. 切片
使用索引对列表进行切片,如下所示:
输出0-2位置的元素:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
# 结果:['charles', 'martina', 'michael']
如果没有指定第一个索引,Python 将自动从列表开头开始:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
# 结果:['charles', 'martina', 'michael', 'florence']
如果没有指定最后一个索引,Python 将自动结束到最后一个元素:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[4:])
# 结果:['eli']
负数索引返回与列表末尾有相应距离的元素,因此可以输出列表末尾的任意切片。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
# 结果:['michael', 'florence', 'eli']
2. 遍历切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
for player in players[:3]:print(player.title())
'''
结果:
Charles
Martina
Michael
'''
3. 复制列表
要复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print(my_foods)
print(friend_foods)
'''
结果:
['pizza', 'falafel', 'carrot cake']
['pizza', 'falafel', 'carrot cake']
'''
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice')
print(my_foods)
print(friend_foods)'''结果:
['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice']
'''