Python编程从入门到实践_第三章_列表

第三章_列表


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 在列表添加元素

  1. 在列表末尾添加元素——将元素附加(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']
  1. 在列表中插入元素——在列表任何位置**插入(insert)**元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

motorcycles.insert(0, 'ducati')
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['ducati', 'honda', 'yamaha', 'suzuki']

3.2.3 从列表中删除元素

  1. 删除元素:知道要删除的元素在列表中的位置——del()
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

del motorcycles[0]
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
  1. 删除元素:删除列表末尾的元素,并能接着使用(弹出)——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.
  1. 弹出列表中任何位置的元素
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()后,被弹出的元素不再在列表中

  1. 根据值删除元素:只知道要删除元素的值,不知道位置——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

发生索引错误但却找不到解决方法时,可以将列表或其长度打印出来

总结

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值