目录
remove(删除 在原列表中根据值删除(从左到右找到第一个删除):
列表的定义:
数据类型为:list,列表由一系列按特定顺序排列的元素组成。简单来说就是有序列的容器,在里面可以放很多元素。由变量名=[]组成
lists = [] #空列表,没有添加任何的元素
name_lists=['小明','小红','小亮'] #支持存放字符串
age_lists=[19,12,32] #支持存放整形
content_lists=['你好',18,True] #支持多个不同类型同时存放
nested_lists=['名字',17,True,[18,False],{'name':'小明'}]#支持嵌套列表、元组、字典
列表的索引:
以0为开始,用来获取列表的某个值,由于索引由0开始,所以每个元素索引n-1.负数表示从右往左取
content=[18,19,31,19,41]
print(content[0]) #输出结果为18
print(content[4]) #输出结果为41
print(content[-1]) #输出结果为41
其他类型转换为列表类型:
使用list()包住需要转换的数据类型即可!
content_str='你好'
content_list=list(content_str)
print(content_list) #输出结果为:['你', '好']
print(type(content_list)) #输出结果为:<class 'list'>
列表的切片:
与字符串的切片类似,具体查看下面!python中字符串常用方法_HHYZBC的博客-CSDN博客https://blog.csdn.net/HHYZBC/article/details/123427552
常用方法:
增:
append(追加,在原列表中尾部追加值):
翻译为:附加
name_lists=['你好'] #定义一个列表
name_lists.append('世界') #将世界追加在列表最后面
print(name_lists)#输出结果为['你好', '世界']
insert(插入,在原定的列表指定索引位置插入值):
翻译为:插入
content=[18,19,31,12,41]
content.insert(1,'你好') #在该列表索引1的位置插入‘你好’
print(content) #输出结果为[18, '你好', 19, 31, 12, 41]
extend(扩展,将一个列表中的元素添加到另一个列表):
翻译为:延长
content=[18,19,31,12,41]
name_lists=['你好']
content.extend(name_lists) #将name_lists列表加到content列表后面
print(content) #输出结果[18, 19, 31, 12, 41, '你好']
删:
remove(删除 在原列表中根据值删除(从左到右找到第一个删除):
翻译为:消除
content=[18,19,31,19,41]
content.remove(31) #找到31并删除
content.remove(19) #从左往右数第一个19进行删除
print(content) #输出结果为[18, 19, 41]
如果没有找到该值,会报错ValueError: list.remove(x): x not in list!
pop(在原列表中根据索引删除某个元素并弹出这个值):
翻译为:枪击、爆声、流行乐曲
content=[18,19,31,19,41]
x=content.pop(2) #将索引2的值删除并将这个值赋值给x
print(x) #输出结果为:31
print(content) #输出结果为[18, 19, 19, 41]
clear(清空原列表):
翻译为:清除
content=[18,19,31,19,41]
content.clear() #清空该列表
print(content) #输出结果为[]
del (根据列表索引删除值):
del在python中是内置关键字!
content=[18,19,31,19,41]
del content[2]
print(content) #输出结果为[18, 19, 19, 41]
改:
reverse(将列表逆序排序):
翻译为:逆转
content=[18,19,31,19,41]
content.reverse()
print(content) #输出结果为[41, 19, 31, 19, 18]
sort(将列表中的可迭代对象进行排序)
翻译为分类、类、类别。它是列表(list)的方法,返回值为None,排序后是直接在原列表上进行修改。函数原型为sort(key,reverse=False)
key 指定一个参数的函数,该参数用于从每个列表元素中提取比较键。与列表中的每个项目对应的键计算一次,然后用于整个排序过程。默认值(Nome)表示列表项直接排序,而不计算单独的键值。如果需要对单独的键名进行排序,则使用lambda a:a[n]参数,其中的n表示键值的索引。
reverse指定一个布尔类型参数,表示排序顺序,当False时为升序,Ture时则为降序。
在修改时是在原列表上直接进行修改!
list1=[[12],[142],[13],[31]]
list1.sort(key=None,reverse=True) #默认值,可以省略
print(list1) #[[142], [31], [13], [12]]
list2=[[12,32],[42,41],[37,61],[15,31]]
list2.sort(key=lambda x:[1],reverse=True) #根据内部嵌套列表索引1的元素进行升序
print(list2) #[[12, 32], [42, 41], [37, 61], [15, 31]]
list3=[('我',188),('小明',156),('小红',167)]
list3.sort(key=lambda x:x[1],reverse=False) #根据内部的元组索引1的元素进行降序
print(list3) #[('小明', 156), ('小红', 167), ('我', 188)]
list4=['abc','hhh','cert']
list4.sort(key=lambda x:x[1],reverse=True) #根据内部字符串索引为1的元素降序降序
print(list4) #['hhh', 'cert', 'abc']
list5=[{'age':123},{'age':132},{'age':10}] #对列表内的字典进行排序
list5.sort(key=lambda x:x['age'],reverse=True)
print(list5) #输出结果为[{'age': 132}, {'age': 123}, {'age': 10}]
注意:
- 当对字典进行排序时,是输入要排序的键名,而不是索引,而且字典的键名需要相同!
- 在对字符串进行排序时,它对比的是第一个字符ascii码表进行排序
- 对象一定要是可迭代对象,可迭代代谢一共有:列表(list)、元组(tuple)、字符串(str)、字典(dict)等类型。并且列表内部的嵌套中必须是同一种类型,否则会报错 '<' not supported between instances of 'list' and 'str'。错误示范:
list1=[[12],[142],[13],'hhh'] #内部是列表和字符串类型
list1.sort(key=None,reverse=True)
print(list1)
sorted(将列表中的可迭代对象进行排序)
与sort类似,区别是这个是函数,而sort是列表的方法,并且sorted排序是不会对原列表进行修改,而是返回一个新的列表。
参数也与sort一样
key 指定一个参数的函数,该参数用于从每个列表元素中提取比较键。与列表中的每个项目对应的键计算一次,然后用于整个排序过程。默认值(Nome)表示列表项直接排序,而不计算单独的键值。如果需要对单独的键名进行排序,则使用lambda a:a[n]参数,其中的n表示键值的索引。
reverse指定一个布尔类型参数,表示排序顺序,当False时为升序,Ture时则为降序。
content1 = [2, 1, 4, 3, 64, 6] # 列表
content2 = sorted(content1, reverse=False) # 进行升序
print(content2) # 输出结果[1, 2, 3, 4, 6, 64]
content_list1 = [[1, 3], [2, 6], [3, 2], [4, 5]] # 嵌套列表
content_list2 = sorted(content_list1, key=lambda x: x[1], reverse=True) # 对内部列表索引1进行降序
print(content_list2) # 输出结果[[2, 6], [4, 5], [1, 3], [3, 2]]
content_str1 = ['14', '2', '41', '31', '23'] # 列表内部是字符串
content_str2 = sorted(content_str1) # 对字符串进行升序
print(content_str2) # 输出结果['14', '2', '23', '31', '41']
content_tuple1 = [(1, 2), (2, 1), (3, 41), (4, 5)] # 列表内部是元组
content_tuple2 = sorted(content_tuple1, key=lambda x: x[1]) # 对内部元组索引1进行升序
print(content_tuple2) # 输出结果为[(2, 1), (1, 2), (4, 5), (3, 41)]
content_dict1 = [{'name': 42}, {'name': 13}, {'name': 43}, {'name': 21}] # 列表内部是字典
content_dict2 = sorted(content_dict1, key=lambda x: x['name']) # 对键名为'name'的值进行升序
print(content_dict2) # 输出结果为[{'name': 13}, {'name': 21}, {'name': 42}, {'name': 43}]
注意:
- 对字典进行排序时键名需要相同
- 对字符串排序时是根据第一个字符的ascii码进行排序
- 其中的对象也需要相同,否则会报错
这几点都是与sort方法一样的。
根据索引替换元素 改元素:
找到需要修改的值的索引重新赋值即可。
content=[18,19,31,19,41]
content[2]=55
print(content) #输出结果为[18, 19, 55, 19, 41]
查:
len()(获取列表长度):
content=[18,19,31,19,41]
print(len(content)) #输出结果为5
列表嵌套:
content=[18,19,31,[12,32,16],41] #列表嵌套
print(content[3]) #输出结果为[12, 32, 16]
print(content[3][1]) #输出结果为32