列表是用中括号扩起来,以逗号分隔
列表的格式:
name = ['Tom', 'Dave', 'lily']
列表值的查询和修改:
in 判断一个值是否在列表中
names = ['Tom', 'Dave', 'Lily']
print('Tom' in names) # bool值为True说明在列表中
运行结果:
True
从列表中取值
从列表中取值,我们可以用下标的方法,如果要取全部的值我们可以用for循环
例1:
names = ['Tom', 'Dave', 'Lily']
print(names[2])
运行结果:
Lily
例2:
names = ['Tom', 'Dave', 'Lily']
for name in names:
print(name)
运行结果:
Tom
Dave
Lily
修改列表的值
修改列表的值也是用下标,直接赋值即可
例1:
names = ['Tom', 'Dave', 'Lily']
print('修改前:', names)
names[1] = 'Tomas'
print('修改后:', names)
运行结果:
修改前: ['Tom', 'Dave', 'Lily']
修改后: ['Tom', 'Tomas', 'Lily']
列表的常用方法:
append
append 用于向列表添加内容,添加到列表的尾部
例1:
names = ['Tom', 'Dave', 'Lily']
names.append('Tomas')
print('添加后的列表内容是:', names)
运行结果:
['Tom', 'Dave', 'Lily', 'Tomas']
clear
清空列表的内容,使列表称为一个空列表,没有任何元素
例1:
names = ['Tom', 'Dave', 'Lily']
names.clear()
print('列表内容是:', names)
运行结果:
列表内容是: [ ]
count
count 统计给定元素在列表中的个数
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony', 'Tom']
count = names.count('Tom')
print('Tom在列表中的个数是:', count)
运行结果:
Tom在列表中的个数是: 2
copy
copy是复制一个已存在的列表,并返回复制的列表,这个列表是浅复制,即如果列表的元素是引用类型,只复制地址,而不会将引用的指向复制,深浅复制查看后面内容
例1:
names = ['Tom', 'Dave', 'Lily']
copy_names = names.copy()
print('复制的列表内容是:', copy_names)
运行结果:
复制的列表内容是: ['Tom', 'Dave', 'Lily']
extend
将一个列表加入另一个列表中,相当于 list1 + list2
例1:
names = ['Tom', 'Dave', 'Lily']
new_names = ['Tomas', 'Tony']
names.extend(new_names) # 将new_names列表的内容,加入到names列表中
print('扩展后的列表内容是:', names)
运行结果:
列表内容是: ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
例2:
names = ['Tom', 'Dave', 'Lily']
new_names = ['Tomas', 'Tony']
print('相加后的列表内容是:', names + new_names)
运行结果:
相加后的列表内容是:['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
index
获取元素的下标
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
index = names.index('Dave')
print('Dave的下标是:', index)
运行结果:
Dave的下标是:1
insert
在指定位置向列表插入内容,插入需要知道要插入位置的下标
语法:
s.insert(index, value)
例1:
names = ['Tom', 'Dave', 'Lily']
names.insert(1, 'Tomas') # 在下标为 1 的位置插入
print('插入后的列表是:', names)
运行结果:
插入后的列表是:['Tom', 'Tomas', 'Dave', 'Lily']
pop
从列表中,删除一个指定下标处的元素,如果不指定下标,默认是最后一个,如果下标不存在,会报 IndexError
错误
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
ret = names.pop()
print('删除后的列表是:', names)
print('删除的元素是:', ret)
运行结果:
删除后的列表是: ['Tom', 'Dave', 'Lily', 'Tomas']
删除的元素是: Tony
remove
remove删除指定的内容,如果内容不存在报 ValueError
错误
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
names.remove('Lily')
print('删除后的列表是:', names)
运行结果:
删除后的列表是: ['Tom', 'Dave', 'Tomas', 'Tony']
reverse
reverse是将列表逆序显示,再次逆序将还原为未逆序前的状态
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
names.reverse()
print('逆序后的列表内容是:', names)
运行结果:
逆序后的列表内容是: ['Tony', 'Tomas', 'Lily', 'Dave', 'Tom']
sort
sort对列表按ASCII表顺序进行排序,排序后会改变原列表的顺序, sort有两个关键字参数:
1、key:指定排序规则,默认是None
2、reverse:是否逆序,默认是False
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
print('排序前列表顺序是:', names)
names.sort()
print('排序后列表顺序是:', names)
运行结果:
排序前列表顺序是: ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
排序后列表顺序是: ['Dave', 'Lily', 'Tom', 'Tomas', 'Tony']
例2:
names = ['Tom', 'Dave', 'Lily', 'tom', 'Tony']
names.sort(key=str.lower)
print('指定key排序后是:', names)
names = ['Tom', 'Dave', 'Lily', 'tom', 'Tony']
names.sort()
print('不指定key排序后是:', names)
运行结果:
指定key排序后是: ['Dave', 'Lily', 'Tom', 'tom', 'Tony']
不指定key排序后是: ['Dave', 'Lily', 'Tom', 'Tony', 'tom']
列表的切片
指定开始和结束位置切片
指定位置切片,左闭右开,即结果中包含start位置的元素,不包括end处的元素
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[1:3]
print(sub_name)
运行结果:
['Dave', 'Lily']
指定开始不指定结束位置切片
不指定结束位置,即切到列表末尾
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[2:]
print(sub_name)
运行结果:
['Lily', 'Tomas', 'Tony']
指定不指定开始,指定结束位置切片
不指定开始位置,即从列表第一个元素开始
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[:3]
print(sub_name)
运行结果:
['Tom', 'Dave', 'Lily']
指定切片步长
指定步长可以按照步长设置进行取出相应元素
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[::2]
print(sub_name)
运行结果:
['Tom', 'Lily', 'Tony']
切片复制列表
不指定开始和结束位置,并且步长为1时(步长为 1 ,可以省略),即复制列表
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[:] # 相当于复制列表
print(sub_name)
运行结果:
['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
del
del删除列表元素:
例1:
names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
del names[::3] # 从第一个开始每隔3个元素删除一个,因为步长为3
print(names)
运行结果:
['Dave', 'Lily', 'Tony']
特殊用法
用乘法重复列表内容
例1:
names = ['Tom', 'Dave', 'Lily']
names *= 3
print(names)
运行结果:
['Tom', 'Dave', 'Lily', 'Tom', 'Dave', 'Lily', 'Tom', 'Dave', 'Lily']