列表是由一系列按特定顺序排列的元素
表达示例:
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'''
注意:发生索引错误如果却找不到方法,将列表或其长度打印出来,列表或许与你以为的截然不同,在程序对其进行了动态处理后尤为如此。