list类-列表
一、list类的基本属性
1. 列表格式
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]
2. 列表中可以嵌套任何类型
中括号括起来
使用,分割每个元素
列表中的元素可以是 数字,字符串,列表,布尔值;所有的都能放进去。
“集合”,内部放置任何东西
3.索引取值
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]print(li[3])#age
4.切片取值
切片结果也是列表
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]print(li[3:-1])#['age', ['伊文', ['19', 10], 'even'], 'root']
5.for循环
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]for n inli:print(n)#1#12#9#age#['伊文', ['19', 10], 'even']#root#True
二、list类中元素的修改
1.修改
索引修改
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]
li[1] = 120
print(li)
li[1] = [11,22,33,44]print(li)#[1, 120, 9, 'age', ['伊文', ['19', 10], 'even'], 'root', True]#[1, [11, 22, 33, 44], 9, 'age', ['伊文', ['19', 10], 'even'], 'root', True]
索引修改
切片修改
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]
li[1:3] = [120,90]print(li)#[1, 120, 90, 'age', ['伊文', ['19', 10], 'even'], 'root', True]
切片修改
2.删除
索引删除
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]del li[1]print(li)#[1, 9, 'age', ['伊文', ['19', 10], 'even'], 'root', True]
索引删除
切片删除
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]del li[2:6]print(li)#[1, 12, True]
切片删除
三、list类的一些操作
1.in操作
判断元素是否在列表里
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]
v1= "伊文" inliprint(v1)
v2= "Q" inliprint(v2)#False #伊文在嵌套内列表的元素中#True
2.提取操作
li = [1, 12, 9, "age", ["伊文", ["19", 10], "even"], "root", True]
n= li[4][1][0] #提取第5个元素列表中的第2个元素列表中的第1个元素
print(n)#19
3.转换
字符串转换列表,内部自己使用for循环
li = list("evenroot")
new_li=list(li)print(new_li)#['e', 'v', 'e', 'n', 'r', 'o', 'o', 't']
列表转换成字符串(既有数字又有字符串的情况)
需要自己写for循环一个一个处理
li = [11,22,33,"123","even"]
s= ""
for i inli:
s= s +str(i)print(s)#112233123even
列表转换成字符串(列表中的元素只有字符串的情况)
直接使用字符串join方法
li = ["123","alex"]
v= "".join(li)print(v)#123alex
四、list类中提供的方法
1.append
在原来值最后整体追加
li = [11,22,33,44]
v= li.append(5)print(v)print(li)
v= li.append(["root"])print(v)print(li)#None#[11, 22, 33, 44, 5]#None#[11, 22, 33, 44, 5, ['root']]
append
2.clear
清空列表
li = [11,22,33,44]
li.clear()print(li)#[]
clear
3.copy
拷贝(浅拷贝)
li = [11,22,33,44]
v=li.copy()print(v)#[11,22,33,44]
copy
4.count
计数,计算元素出现的次数
li = [11,22,33,22,44]
v= li.count(22)print(v)#2
count
5.extend
扩展原列表,参数:可迭代对象
一个一个追加元素(区别于append)
li = [11,22,33,22,44]
li.extend([9999,"root"])print(li)#[11, 22, 33, 22, 44, 9999, 'root']
extend
6.index
根据值获取当前值索引位置(左优先)
li = [11,22,33,22,44]
v= li.index(33)print(v)#2
index
7.insert
在指定索引位置插入元素
li = [11,22,33,22,44]
li.insert(0,99)print(li)#[99, 11, 22, 33, 22, 44]
insert
8.pop
删除某个值,并获取删除的值
默认情况
li = [11,22,33,22,44]
v=li.pop()print(li)print(v)#[11, 22, 33, 22]#44
pop()
指定索引的情况
li = [11,22,33,22,44]
v= li.pop(1) #拿掉第二个元素
print(li)print(v)#[11, 33, 22, 44]#22
pop(1)
9.remove
删除列表中的指定值(左优先)
li = [11,22,33,22,44]
li.remove(22)print(li)#[11, 33, 22, 44]
remove
*到这里为止这几类方法和操作都可以对list类进行修改或删除
pop
removedelli[0]del li[1:-1]
clear
10.reverse
将当前列表进行反转
li = [11,22,33,22,44]
li.reverse()print(li)#[44, 22, 33, 22, 11]
reverse
11.sort
排序
从小到大排序
li = [11,44,22,33,22]
li.sort()print(li)#[11, 22, 22, 33, 44]
sort()
从大到小排序
li = [11,44,22,33,22]
li.sort(reverse=True)print(li)#[44, 33, 22, 22, 11]
sort(reverse=True)
*cmp key sorted暂不讨论