python学习2:列表
1 列表是什么
列表是由一系列按特定元素顺序排列的元素组成。
在python中用方括号[]
表示列表,并用逗号分隔其中的元素。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
结果:
['trek', 'cannondale', 'redline', 'specialized']
1.1 访问列表元素
- 列表是有序集合,因此访问列表的任意元素,只需要将该元素的位置(索引)告诉python即可。
print(bicycles[0])
结果:
trek
- 在python中,第一个列表元素的索引为0,而不是1。
print(bicycles[1].title())
message = f'My first bicycle was a {bicycles[0].title()}.'
print(message)
结果:
Cannondale
My first bicycle was a Trek.
因此返回的是第二个元素而不是第一个。
- python为访问最后一个列表元素提供了一种方法,通过将索引指定为-1,可以使python返回最后一个列表元素。
print(bicycles[-1].title())
结果:
Specialized
2 修改、添加和删除元素
2.1 修改列表元素
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素新值。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0]='ducati'
print(motorcycles)
结果:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
2.2 在列表中添加元素
1. 在列表末尾添加元素
在列表中添加新元素时,最简单的方式是将元素附加append
到列表,它将添加到列表末尾。
motorcycles.append('ducati') # append在末尾添加
print(motorcycles)
结果:
['ducati', 'yamaha', 'suzuki', 'ducati']
2. 在列表中插入元素
使用insert()
可在列表的任何位置添加新元素。
motorcycles.insert(1, 'bentian') # insert在指定位置添加
print(motorcycles)
结果:
['ducati', 'bentian', 'yamaha', 'suzuki', 'ducati']
即在索引1处添加空间,并将bentian
存储到这个位置。
2.3 从列表中删除元素
1. 使用del语句删除元素
如果知道删除的元素在列表中的位置,可以使用del
语句。
del motorcycles[1] # del删除指定位置的列表元素
print(motorcycles)
结果:
['ducati', 'yamaha', 'suzuki', 'ducati']
2. 使用pop删除元素
pop()
删除列表末尾的元素,并让你可以接着使用它。
last_owned = motorcycles.pop() # pop()删除列表末尾元素,并让你能够接着使用它
print(motorcycles)
print(last_owned)
结果:
['ducati', 'yamaha', 'suzuki']
ducati
3. 弹出列表中任何位置处的元素
可以使用pop()
来删除列表中任意位置的元素,只需要在括号中指定要删除的元素的索引即可。
first_owned = motorcycles.pop(0) # pop()删除列表中任意未知的元素,只需在圆括号中指定要删除元素的索引
print(f'The first motorcycle I owned was a {first_owned.title()}.')
结果:
[ 'yamaha', 'suzuki','ducati']
- 使用del语句还是pop方法的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用pop。
4. 根据值删除元素
有时,不知道从列表中删除值所在的位置,如果只知道要删除元素的值,可使用方法remove()
。
motorcycles.remove('yamaha') # remove删除指定元素值
print(motorcycles)
结果:
[ 'suzuki','ducati']
- 方法remove只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来确保将每个值都删除。
3 组织列表
3.1 使用sort对列表永久排序
sort()
可以实现对列表进行永久排序。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort() # sort可以让其中的元素按字母顺序排列,是永久性的
print(cars)
结果:
['audi', 'bmw', 'subaru', 'toyota']
还可以按与字母顺序相反的顺序排列列表元素,只需向sort()
传递参数reverse=True
。
cars.sort(reverse=True)
print(cars)
结果:
['toyota', 'subaru', 'bmw', 'audi']
3.2 使用sorted对列表临时排序
sorted()
可以按特定的顺序显示列表元素,同时不影响他们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(sorted(cars)) # sorted()能够按特定顺序显示列表元素,同时不影响在列表中的原始排列顺序
print(sorted(cars, reverse=True)) # 按照字母顺序相反排列元素
print(cars)
结果:
['audi', 'bmw', 'subaru', 'toyota']
['toyota', 'subaru', 'bmw', 'audi']
['bmw', 'audi', 'toyota', 'subaru']
3.3 倒着打印列表
reserve()
可以反转列表元素顺序。
cars.reverse() # reverse不是按与字母顺序相反的顺序排列元素,而只是反转列表元素的排列顺序
3.4 确定列表长度
len()
可以快速获悉列表的长度。
4 使用列表时避免索引错误
发生索引错误时,可以尝试将列表长度打印出来,结果可能与所想的不一样。