第三章 列表

列表是由一系列按特定顺序排列的元素

表达示例:

letters=[1,2,3]
print(letters)
# 输出:[1, 2, 3]

访问列表元素

列表是有序集合,访问列表的任何元素,只需要将该元素的位置或者索引告诉python即可

例如:

letters=[1,2,3]
print(letters[0])
#输出:1

注意:

1、索引从0开始

2、-1为返回倒数第一个,-2为返回倒数第二个

bicycle=['trek','cannondale','redline','specialized']
print(bicycle[0])#trek
print(bicycle[0].title())#Trek

对比发现title()可以让元素的格式更简洁

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

修改、添加、删除元素

修改元素

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()语句来添加元素

插入元素

使用方法insect()

例如

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

删除元素

1、使用del语句删除元素

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

2、使用pop语句删除元素

方法pop()可以删除列表末尾元素,并接着使用它的值。

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']
last_owned=motorcycles[0]
print("The last motorcycle I owned was a "+last_owned.title()+".")
#The last motorcycle I owned was a Honda.

3、弹出列表中的任何位置处的元素

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

motorcycles=['honda','yamaha','suzuki']
first_owned = motorcycles.pop(0)
print("This is the first motorcycle I owned: " + first_owned)
#This is the first motorcycle I owned: honda

注意:如果不知道选择del()或者pop()

如果还需要使用这个元素就用pop,如果不需要就del

4、根据值删除元素

有时候不知道元素的位置但是只知道元素的值就用remove()

motorcycles=['honda','yamaha','suzuki']
motorcycles.remove('yamaha')
print(motorcycles)
#['honda', 'suzuki']

remove()删除元素后还可以继续使用其值

motorcycles=['honda','yamaha','suzuki','ducati']
too_expensive='ducati'#将ducati储存在这个变量中
motorcycles.remove(too_expensive)
print(motorcycles)
print("\nA"+too_expensive+" is too expensive!")
'''
['honda', 'yamaha', 'suzuki']

Aducati is too expensive!
'''

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

组织列表

使用sort()进行永久排序

为了简化工作量,用小写来示例

cars=['bwm','audi','toyota','subaru']
cars.sort()
print(cars)
#['audi', 'bwm', 'subaru', 'toyota']

现在列表永久修改了顺序且无法回复到原来的顺序了

还可以将列表元素倒序排列

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

使用sorted()对列表进行临时排序

cars=['bwm','audi','toyota','subaru']
print("Here is the original list")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the sorted original list again:")
print(cars)
'''
Here is the original list
['bwm', 'audi', 'toyota', 'subaru']

Here is the sorted list:
['audi', 'bwm', 'subaru', 'toyota']

Here is the sorted original list again:
['bwm', 'audi', 'toyota', 'subaru']

'''

注意,调用函数sorted(),列表元素的排列顺序并没有变,如果要按与字符相反顺序来排序,也可以向函数sorted()传递参数reveser=True

倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse(),假设汽车列表是按购买时间排列的,可以轻松反转,

cars=['bwm','audi','toyota','subaru']
cars.reverse()
print(cars)
#['subaru', 'toyota', 'audi', 'bwm']

确定列表长度

使用函数len()可以很快了解列表长度

cars = ['bwm','audi','toyota','subaru']
len(cars)
#4

使用列表时避免索引错误

假设你有一个包含三个元素的列表,但是却要求获取第四个元素

cars = ['bwm','audi','toyota','subaru']
print(cars[4])
'''
Traceback (most recent call last):
  File "C:\Users\24923\PycharmProjects\pythonProject\列表.py", line 2, in <module>
    print(cars[4])
IndexError: list index out of range'''

注意:发生索引错误如果却找不到方法,将列表或其长度打印出来,列表或许与你以为的截然不同,在程序对其进行了动态处理后尤为如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值