python编程:从入门到实践 (第一版) 第三章学习笔记

第3章 列表简介

列表示例

在Python中,用方括号来表示列表,并用逗号分隔其中的元素。
bicycles.py

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

打印结果

['trek', 'cannondale', 'redline', 'specialized']

访问列表元素

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())
print(bicycles[-1].title())
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)

修改、添加和删除元素

修改元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
motorcycles.py

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

输出:

['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
在列表中添加元素
在列表末尾添加元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']

方法append()让动态创建列表易如反掌。常见的一种用法,先创建一个空列表,再使用一系列的append()语句添加元素。

在列表中插入元素

使用insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值

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

输出:

['honda', 'yamaha', 'suzuki']
['ducati', 'honda', 'yamaha', 'suzuki']
从列表中删除元素
使用del语句删除元素

如果知道要删除的元素在列表中的位置,可使用del 语句。

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)

注意: 使用del 语句将值从列表中删除后,你就无法再访问它了。

使用pop() 删除元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)

输出:

['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki

实际上,可以使用pop() 来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
first_owned = motorcycles.pop(0)
print("The first motorcycle I owned was a " + first_owned.title() + ".")
使用方法remove()

有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可以使用方法remove()

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print("\nA " + too_expensive.title() + " is too expensive for me.")

输出:

['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']

A Ducati is too expensive for me.

注意: 方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

组织列表

使用方法sort() 对列表进行永久性排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

输出:

['audi', 'bmw', 'subaru', 'toyota']

还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True 。

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

输出:

['toyota', 'subaru', 'bmw', 'audi']
使用函数sorted() 对列表进行临时排序

函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。

cars = ['bmw', 'audi', 'toyota', 'subaru']
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)

输出:

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']

如果想按与字母顺序相反的顺序显示列表,也可向函数sorted() 传递参数reverse=True 。

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> sorted(cars,reverse=True)
['toyota', 'subaru', 'bmw', 'audi']
使用方法reverse() 倒着打印

要反转列表元素的排列顺序,可使用方法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']

方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse() 即可。

使用函数len() 确定列表的长度
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> len(cars)
4
注意索引越界
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> cars[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

习题

3-1
names = ['zhang san', 'li si', 'wang wu', 'lu liu']
print(names[0])
print(names[1])
print(names[2])
3-2
names = ['zhang san', 'li si', 'wang wu', 'lu liu']
print("Hello " + names[0].title() +",long time no see!")
print("Hello " + names[1].title() +",long time no see!")
print("Hello " + names[2] .title()+",long time no see!")
3-3
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("I would like to own a " + cars[0] + "!")
print("I think " + cars[1] + " is too expensive!")
print(cars[2] + "is so beautiful!")
print("I know nothing about " + cars[-1]  + "!")
3-4
names = ['王校长', '小肥', '小脑斧']
print(names[0].title() + ",诚邀共进晚餐!")
print(names[1].title() + ",诚邀共进晚餐!")
print(names[2].title() + ",诚邀共进晚餐!")
3-5
names = ['王校长', '小肥', '小脑斧']
print("最新消息" + names[-1] +"无法赴约")
names[-1] = "研究枝"
print(names[0].title() + ",诚邀共进晚餐!")
print(names[1].title() + ",诚邀共进晚餐!")
print(names[2].title() + ",诚邀共进晚餐!")
3-6
names = ['王校长', '小肥', '小脑斧']
print("---------------------------------------------")
print("最新消息" + names[-1] +"无法赴约")
names[-1] = "研究枝"
print("哈哈,我找到了一个更大的餐桌!")
names.insert(0, "程哥")
names.insert(2, "凯哥")
names.append("季节")
print(names[0].title() + ",诚邀共进晚餐!")
print(names[1].title() + ",诚邀共进晚餐!")
print(names[2].title() + ",诚邀共进晚餐!")
print(names[3].title() + ",诚邀共进晚餐!")
print(names[4].title() + ",诚邀共进晚餐!")
print(names[5].title() + ",诚邀共进晚餐!")
3-7
names = ['王校长', '小肥', '小脑斧']
print("---------------------------------------------")
print("最新消息" + names[-1] +"无法赴约")
names[-1] = "研究枝"
print("哈哈,我找到了一个更大的餐桌!")
names.insert(0, "程哥")
names.insert(2, "凯哥")
names.append("季节")
print("-----------------------------------------")
print("很抱歉,我只能邀请2个人共进晚餐了。。。")
popped_person = names.pop()
print(popped_person + ",很抱歉,不能邀请你共进晚餐了。")
popped_person = names.pop()
print(popped_person + ",很抱歉,不能邀请你共进晚餐了。")
popped_person = names.pop()
print(popped_person + ",很抱歉,不能邀请你共进晚餐了。")
popped_person = names.pop()
print(popped_person + ",很抱歉,不能邀请你共进晚餐了。")
print("-------------------------------------------")
print(names[0] + ",你依然在受邀人之列。")
print(names[1] + ",你依然在受邀人之列。")

del names[0]
del names[0]
print(names)
3-8
places = ['guangzhou', 'beijing', 'chengdu', 'wuhan', 'nanchang']
print(places)
print(sorted(places))
print(places)
places.reverse()
print(places)
places.reverse()
print(places)
places.sort()
print(places)
places.sort(reverse=True)
print(places)
3-9
names = ['王校长', '小肥', '小脑斧']
length = len(names)
print("一共邀请了" + str(length) + "人")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值