第三章_列表
文章目录
3.1 列表
- 列表由一系列按特定顺序排列的元素组成
- Python中用方括号[ ]表示列表,并用逗号分隔其中的元素
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles)
['trek', 'coannondale', 'redline', 'specialized']
3.1.1 访问列表元素
- 索引
- python中索引从0而不是1开始
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles[0])
trek
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles[3])
specialized
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles[4])
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-4-c75c735835cd> in <module>
1 bicycles = ['trek','coannondale','redline','specialized']
----> 2 print(bicycles[4])
IndexError: list index out of range
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles[0].title())
Trek
- 索引为-1:访问列表最后一个元素
- 在不知道列表长度的情况下访问列表的最后一个元素
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles[-1])
specialized
bicycles = ['trek','coannondale','redline','specialized']
print(bicycles[-2])
redline
3.1.3 使用列表中的各个值
任务:打印“My first bicycle was a Trek.”
bicycles = ['trek','coannondale','redline','specialized']
print('My first bicycle was a Trek.')
My first bicycle was a Trek.
bicycles = ['trek','coannondale','redline','specialized']
message = f"My first bicycle was a {bicycles[0].title()}."
print(message)
My first bicycle was a Trek..
3.2 修改、添加和删除元素
3.2.1 修改列表元素
任务:将第一个元素值修改为‘ducati’
解决方法:指定列表名和要修改的元素的索引,再指定该元素的值
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
3.2.2 在列表添加元素
- 在列表末尾添加元素——将元素附加(append) 到列表
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles = []
print(motorcycles)
motorcycles.append('honda')
print(motorcycles)
motorcycles.append('yamaha')
print(motorcycles)
motorcycles.append('suzuki')
print(motorcycles)
[]
['honda']
['honda', 'yamaha']
['honda', 'yamaha', 'suzuki']
- 在列表中插入元素——在列表任何位置**插入(insert)**元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.insert(0, 'ducati')
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['ducati', 'honda', 'yamaha', 'suzuki']
3.2.3 从列表中删除元素
- 删除元素:知道要删除的元素在列表中的位置——del()
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
- 删除元素:删除列表末尾的元素,并能接着使用(弹出)——pop ()
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
popped_motorcycles = motorcycles.pop()
print(motorcycles)
print(popped_motorcycles)
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
motorcycles = ['honda','yamaha','suzuki']
last_owned = motorcycles.pop()
print(f"The last motorcycle I owned was a {last_owned.title()}.")
The last motorcycle I owned was a Suzuki.
- 弹出列表中任何位置的元素
motorcycles = ['honda','yamaha','suzuki']
first_owned = motorcycles.pop(0)
print(f"The first motorcycle I owned was a {first_owned.title()}.")
The first motorcycle I owned was a Honda.
使用pop()后,被弹出的元素不再在列表中
- 根据值删除元素:只知道要删除元素的值,不知道位置——remove()
motorcycles = ['honda','yamaha','suzuki','ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
- 使用remove()删除元素后可以接着使用该值
motorcycles = ['honda','yamaha','suzuki','ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print(f"\nA {too_expensive.title()} is too expensive to me.")
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
A Ducati is too expensive to me.
- remove()只删除第一个指定的值,如要删除的值在列表中出现多次,需要使用循环来确保全部删除
3.3 组织列表
3.3.1 永久排序——sort()
cars = ['bmw','audi','toyota','subaru']
print(cars)
cars.sort()
print(cars)
['bmw', 'audi', 'toyota', 'subaru']
['audi', 'bmw', 'subaru', 'toyota']
cars = ['bmw','audi','toyota','subaru']
print(cars)
cars.sort(reverse=True) #按字母相反顺序培训
print(cars)
['bmw', 'audi', 'toyota', 'subaru']
['toyota', 'subaru', 'bmw', 'audi']
3.3.2 临时排序——sorted()
cars = ['bmw','audi','toyota','subaru']
print(cars)
print("Here is the original list:")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the original list again:")
print(cars)
['bmw', 'audi', 'toyota', 'subaru']
Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']
3.3.3 倒着打印列表——reverse() 永久修改
cars = ['bmw','audi','toyota','subaru']
print(cars)
cars.reverse()
print(cars)
cars.reverse()
print(cars)
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']
['bmw', 'audi', 'toyota', 'subaru']
3.3.4 确定列表的长度——len()
cars = ['bmw','audi','toyota','subaru']
len(cars)
4
3.4 使用列表时避免列表错误
cars = ['bmw','audi','toyota','subaru']
print(cars[4])
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-14-b00293c465d4> in <module>
1 cars = ['bmw','audi','toyota','subaru']
----> 2 print(cars[4])
IndexError: list index out of range
发生索引错误但却找不到解决方法时,可以将列表或其长度打印出来