使用场景:列表是用来存储多组数据的
列表是可变类型
列表支持切片
1.基本规则
1.列表使用[]来表示
2.初始化列表:list = []
3.列表可以一次性存储多个数据:[数据1,数据2,数据3,…]
4.列表中的每一项,都能是不同的数据类型。(包括列表)
示例:
#列表的元素多种多样(指类型)
test_list = [1,'a',[1,2],{"name":"刘备"},{2,3},(1,2,"李四")]
#列表的输出
names_list = ['刘备','曹操','孙权']
print(names_list[0])
print(names_list[1])
print(names_list[2])
print(names_list)
2.常用操作
2.1查找
2.1.1 下标查找
name_list=['tom','lily','rose']
print(name_list[0]) # tom
2.1.2 函数(方法)查找
index()::返回指定数据所在位置的下标
语法:列表序列.index(数据,开始位置的下标,结束位置的下标)
注意:如果查找的数据不存在则报错
name_list = ['tom','lily','rose']
print(name_list.index('tom')) # 0
count():统计指定数据在当前列表中出现的次数
name_list=['tom','lily','rose']
print(name_list.count('tom')) # 1
len():可以获取列表的长度,即列表中数据的个数
name_list=['tom','lily','rose']
print(len(name_list)) # 3
2.1.3 判断是否存在
in:判断指定的数据在某个列表序列,如果在返回True,否则返回False
name_list=['tom','lily','rose']
print('lily'in name_list) #True
print('yao' in name_list) #False
not in :判断指定的数据不在某个列表序列,如果不在返回True,否则返回False
name_list=['tom','lily','rose']
print('tom' not in name_list) # False
print('yaoyao' not in name_list) #True
2.2 增加
append():列表尾部追加数据
语法:列表序列.append(数据)
name=['tom','lily','rose']
name.append('xiaoming')
print(name)#['tom','lily','rose','xiaoming']
注意:如果append()追加的数据是一个序列,则追加整个序列到列表,整体新增一个元素。
name_list = ['tom','lily','rose']
name_list.append(['xiaoming','xiaohong'])
print(name_list)
# 结果:['tom', 'lily', 'rose', ['xiaoming', 'xiaohong']]
extend(): 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一加入列表中(与append对比)
语法:列表序列.extend(数据)
#单个数据,迭代进行插入
name_list1 = ['tom','lily','rose']
name_list1.extend('abc')
print(name_list1)#['tom', 'lily', 'rose', 'a', 'b', 'c']
#序列数据,迭代进行插入
name_list2 = ['tom','lily','rose']
name_list2.extend(['a','b','c'])
print(name_list2)#['tom', 'lily', 'rose', 'a', 'b', 'c']
insert(): 指定位置新增数据
语法:列表序列.insert(位置下标,数据)
name_list = ['tom','lily','rose']
name_list.insert(0,'yaoyao')
print(name_list)
# 结果:['yaoyao', 'tom', 'lily', 'rose']
2.3删除
del
语法:del 目标
#删除一个元素
name_list = ['tom','lily','rose']
del name_list[0]
print(name_list)#['lily','rose']
#删除整个列表
del name_list
print(name_list)#NameError: name 'name_list' is not defined,因为删除了,print找不到name_list,所以报错
remove()
name_list = ['tom','lily','rose']
del_name = name_list.remove("tom") #
print(name_list)#['lily','rose']
pop():删除指定下标的数据(默认为最后一个),并返回该数据
语法:列表.pop(index)
name_list = ['tom','lily','rose']
del_name = name_list.pop(0) # 返回的是被删除的元素
print(del_name) #tom
print(name_list)#['lily', 'rose']
# 不加索引,默认删除最后一个元素
name_list.pop()
print(name_list)#['lily']
clear():清空列表
name_list = ['tom','lily','rose']
name_list.clear() #清除列表里面的所有元素
print(name_list)# 结果是[]
2.4修改
修改指定下标数据:
name_list = ['tom','lily','rose']
name_list[0]='yaoyao'
name_list[2]="yaoyao"
print(name_list)#['yaoyao', 'lily', 'yaoyao']
返回数据在列表中的索引:
name_list = ['tom','lily','rose']
print(name_list.index("tom"))#0
逆转:reverse()
name_list=['tom','lily','rose']
name_list.reverse()
print(name_list)# ['rose', 'lily', 'tom']
排序:sort()
语法:列表.sort(key=None,reverse=False)
注意:reverse表示排序规则,reverse=True 降序,reverse=False 升序(默认)
name_list=[1,7,3,2,8]
name_list.sort()
print(name_list)# [1, 2, 3, 7, 8]
连接:join关键字
语法:分隔符.join(元组和列表) -----把列表和元组转换成字符串
注意:只能够用在存储字符串类型的列表或元组
name_list = ['tom','lily','rose']
print(' '.join(name_list))#tom lily rose
print('*'.join(name_list))#tom*lily*rose
3.列表嵌套
应用场景:要存储高三三个班级的学生名字,每个班级的学生名字为一个列表
name_list = [['xiaoming','xiaohong','xiaoli'],['tom','lily','rose'],['小李','小
杨','小张']]
#如何查找到数据"小李"
print(name_list[2][0])
4.列表推导式
作用:列表推导式:使用一行代码简单快速的创建一个列表。
# 生成一个列表
num_list = [value for value in range(1, 4)]#value 就是往列表中插入的值,可对value 再进行操作
print(num_list)#[1,2,3]
# 对列表中的数据进行过滤
data_list = [1, 9, 2, 10]
new_list = [value for value in data_list if value % 2 == 0]
print(new_list)#[2,10]
new_list2 = [str(value) for value in data_list if value % 2 == 0]
print(name_list2)#['2','10']
print(' '.join(name_list2))
# 字符串转列表,每个元素复制成两份
info_str = "abc"
new_str = [value * 2 for value in info_str]
print(new_str)#['aa', 'bb', 'cc']