列表
1.访问列表元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
注:索引从0而不是1开始
2.在列表中添加元素
2.1在列表末尾添加元素
2.2在列表中插入元素
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
2.3从列表中删除元素
(1)使用del语句删除元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
(2)使用方法pop()删除元素
示例:从列表motorcycles 中弹出一款摩托车。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
上述代码输出结果:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
注:实际上,你可以使用pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
(3)根据值删除元素
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
注:使用remove() 从列表中删除元素时,也可接着使用它的值,只要将它的值在使用remove()方法前存在变量里就可以在删除后继续使用;方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
3.组织列表
3.1使用方法sort()对列表进行永久性排序
使用此方法可以将列表按字母顺序进行永久性排序,还可以向sort()传递参数reverse=True ,将列表按与字母顺序相反的顺序排列。
3.2使用函数sorted()对列表进行临时排序
注:在并非所有的值都是小写时,按字母顺序排列列表要复杂些。
3.3倒着打印列表
3.4确定列表长度
4.操作列表
4.1遍历整个列表
使用for循环遍历列表
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
这些命名约定有助于你明白for 循环中将对每个元素执行的操作。
for cat in cats:
for dog in dogs:
for item in list_of_items:
注:不要遗漏了for循环后面的冒号,因为for 语句末尾的冒号告诉Python,下一行是循环的第一行。换行符为"\n"
4.2创建数值列表
for value in range(1,5):
print(value)
1
2
3
4
在这个示例中,range() 只是打印数字1~4,这是你在编程语言中经常看到的差一行为的结果。函数range() 让Python从你指定的第一个值开始数,并在到达你指定的第二个值 后停止,因此输出不包含第二个值(这里为5)。
numbers = list(range(1,6))
print(numbers)
[1, 2, 3, 4, 5]
4.3列表解析
原代码:
squares = []
for value in range(1,11):
squares.append(value**2)
print(squares)
解析后的代码:
squares = [value**2 for value in range(1,11)]
print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
要使用这种语法,首先指定一个描述性的列表名,如squares ;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式 为value**2 ,它计算平方值。接下来,编写一个for 循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为for value in range(1,11) ,它将值 1~10提供给表达式value**2 。请注意,这里的for 语句末尾没有冒号。
4.4使用列表的一部分(切片)
(1)切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
结果是:
['charles', 'martina', 'michael']
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
['charles', 'martina', 'michael', 'florence']
同理,要让切片终止于列表末尾,也可使用类似的语法,即省略终止索引。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
['michael', 'florence', 'eli']
(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())
Here are the first three players on my team:
Charles
Martina
Michael
(3)复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_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']
4.5元组
(1)定义元组
❶ dimensions = (200, 50)
❷ print(dimensions[0])
print(dimensions[1])
200
50
注:元组不可修改,即dimensions[0] = 250 写法是错误的。
(2)遍历元组中的所有值
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
(3)修改元组变量
❶ dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
❷ dimensions = (400, 100)
❸ print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
Original dimensions:
200
50
Modified dimensions:
400
100