列表简介
- 列表元素
- 修改、添加和删除元素
- 组织列表
- enumerate()
列表是什么
列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例,这个列表包含几种自行车。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
#['trek', 'cannondale', 'redline', 'specialized'] 输出bicycles的全部内容
访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
# trek
索引从0而不是1开始
第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。例如,要访问第四个列表元素,可使用索引3。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])
#cannondale
#specialized
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
#specialized
这种语法很有用,因为你经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推。
修改、添加和删除元素
修改列表元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
#['honda', 'yamaha', 'suzuki']
#['ducati', 'yamaha', 'suzuki'] 直接修改motorcycles[0]的元素
在列表中添加元素
- append()在列表末尾添加元素(动态创建列表)
- insert()在列表中插入元素
- extend()插入多个元素
append()末尾添加
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
#['honda', 'yamaha', 'suzuki']
insert()列表中插入(可在任意位置插入)
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')#在索引0处添加空间
#并将值'ducati'存储到这个地方 其他元素后移
print(motorcycles)
#['ducati', 'honda', 'yamaha', 'suzuki']1
extend()插入多个元素
alist=[]
print(alist)
alist.extend(['woaixiaocao','xiaocaoaiwo'])
print(alist)
#[]
#['520', '1314']
从列表中删除元素
- del语句删除元素
- pop()删除元素
- 弹出列表中任何位置的元素
- 根据值删除元素
(1)使用del语句删除元素
list = ['a', 'b', 'c']
print(list)
del list[0]#索引值
print(list)
#['a', 'b', 'c']#['b', 'c']
(2)使用方法pop()删除元素
方法pop()可删除列表末尾的元素,并让你能够接着使用它。列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
list= ['a', 'b', 'c']
print(list)
popped_list = list.pop()
print(list)
print(popped_list)
#['a', 'b', 'c']
#['a', 'b']
#c
(3)弹出列表中任何位置处的元素
list= ['a', 'b', 'c']
first = list.pop(0)
print(first.title())
#A
(4)根据值删除元素 remove()\
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove()。
它只会删除检索到的第一个值进行删除,后面有相同名字的也不会处理(即删除第一个要删除的元素)
list= ['a', 'b', 'c', 'a']
print(list)
list.remove('a')
print(list)
#['a', 'b', 'c', 'a']
#['b', 'c', 'a']
组织列表
- 使用方法sort()对列表进行永久性排序
- 使用函数sorted()对列表进行临时排序
- 倒着打印列表
- 确定列表的长度
(1)使用方法sort()对列表进行永久性排序 \
Python方法sort()让你能够较为轻松地对列表进行排序。假设你有一个汽车列表,并要让其中的汽车按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
方法sort()永久性地修改了列表元素的排列顺序。现在,汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序:
#['audi', 'bmw', 'subaru', 'toyota']
\
你还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数
reverse=True。下面的示例将汽车列表按与字母顺序相反的顺序排列:
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
#['toyota', 'subaru', 'bmw', 'audi']
(2)使用函数sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("原始列表:")
print(cars)
print("\n临时排序列表:")
print(sorted(cars))
print("\n原始列表again:")
print(cars)
原始列表:
['bmw', 'audi', 'toyota', 'subaru']
临时排序列表:
['audi', 'bmw', 'subaru', 'toyota']
原始列表again:
['bmw', 'audi', 'toyota', 'subaru']
如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。
(3)倒着打印列表 reverse()
要反转列表元素的排列顺序,可使用方法reverse()。reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse()即可。
cars = ['a', 'b', 'c', 'd']
print(cars)
cars.reverse()
print(cars)cars.reverse()print(cars)
['a', 'b', 'c', 'd']['d', 'c', 'b', 'a']['a', 'b', 'c', 'd']
(4)确定列表的长度
使用函数len()可快速获悉列表的长度。
list= ['a', 'b', 'c', 'd']
print(len(list)) #4
enumerate()枚举
enumerate(序列,数字(下标数值,默认为0))
alist=['5','2','0','a']
blist=['1','3','1','4']
for i,j in enumerate(alist):
print(i,j)
for i,j in enumerate(alist):
for m,n in enumerate(blist):
if i==m:
print(j,n)
#输出0 5
1 2
2 0
3 a
5 1
2 3
0 1
a 4