列表元素增删改排操作
一、列表元素的增加操作
- append():在列表的末尾添加一个元素
- extend():在列表的末尾至少添加一个元素
- insert():在列表的任意位置添加一个元素
- 切片:在列表的任意位置添加至少一个元素
#append():向列表的末尾添加一个元素
lst=[10,20,30]
print('添加元素前:',lst,id(lst))
lst.append(100)
print('添加元素后:',lst,id(lst))
lst.append('100')
print('添加元素后:',lst,id(lst))
lst2=['hello','world']
lst.append(lst2)
print('添加元素后:',lst,id(lst)) #[10, 20, 30, 100, '100', ['hello', 'world']] 1943091429504 lst2以一个元素的形式添加到lst中
#extend():向列表的末尾添加多个元素
lst.extend(lst2)
print(lst) #[10, 20, 30, 100, '100', ['hello', 'world'], 'hello', 'world'] lst中添加多个元素
#insert():在任意位置添加一个元素
lst.insert(1,90)
print(lst) #[10, 90, 20, 30, 100, '100', ['hello', 'world'], 'hello', 'world'] 在序号为1的位置添加元素90
#切片操作:在任意的位置上添加多个元素
lst3=['小秦同学在上学','喜欢和牛奶']
lst[1::]=lst3 #lst切片后面的数据全部被替代 [10, '小秦同学在上学', '喜欢和牛奶']
print(lst)
二、列表元素的删除操作
1、remove()
- 一次删除一个元素
- 重复元素只删除第一个
- 元素不存在抛出ValueError
lst=[10,20,30,40,50,60,30] print(lst) lst.remove(30) #从列表中删除一个元素,如果有重复元素则只移动第一个元素 print(lst) #st.remove(100) #ValueError: list.remove(x): x not in list 列表中不存在该元素 运行结果: [10, 20, 30, 40, 50, 60, 30] [10, 20, 40, 50, 60, 30]
2、pop()
- 删除一个指定索引位置上的元素
- 指定索引不存在抛出IndexError
- 不指定索引,删除列表中最后一个元素
print(lst) lst.pop() #pop()如果不指定索引就删除列表最后的一个元素 print(lst) lst.pop(0) #删除索引号为0的元素,也就是第一个元素 print(lst) #lst.pop(100) #IndexError: pop index out of range 越界,pop报错 运算结果: [10, 20, 40, 50, 60, 30] [10, 20, 40, 50, 60] [20, 40, 50, 60]
3、切片:一次至少删除一个元素
print("切片删除操作——产生一个新的对象")
print(lst)
new_lst=lst[0::2]
print(new_lst) #即使用新切片产生后的列表代替原列表使用
print("切片删除操作——没有产生新的对象")
print(lst)
lst[1:3]=[] #用空列表来代替位点
print(lst)
运算结果:
切片删除操作——产生一个新的对象
[20, 40, 50, 60]
[20, 50]
切片删除操作——没有产生新的对象
[20, 40, 50, 60]
[20, 60]
4、clear():清空列表
print(lst) lst.clear() #清空列表元素 print(lst) 运行结果: [20, 60] []
5、del:删除列表
del lst print(lst) #NameError: name 'lst' is not defined 报错,显示未被定义,因为已经被删除了
三、列表元素的修改操作
- 为指定索引的元素赋予一个新值
- 为指定的切片赋予一个新值
lst=[10,20,30,40] print(lst) print(lst[2]) lst[2]=100 print(lst) #使用切片批量修改 lst[1:3]=[300,400,500,600] print(lst) 运行结果: [10, 20, 30, 40] 30 [10, 20, 100, 40] [10, 300, 400, 500, 600, 40]
四、列表元素的排序操作
- 调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True进行降序排序
- 调用内置函数sorted(),可以指定reverse=True,进行降序排列,原排列不发生变化
#使用sort()方法进行排序,不会生成新的列表
lst=[20,40,10,98,54]
print('排序前:',lst,id(lst))
lst.sort() #默认为升序排序
print('排序后:',lst,id(lst))
lst=[20,40,10,98,54]
print('排序前:',lst,id(lst))
lst.sort(reverse=True) #reverse=True时,即是设置为逆排序
print('排序后:',lst,id(lst))
#使用sorted()对列表进行排序,将会产生一个新的列表对象
lst=[20,40,10,98,54]
print('原列表:',lst)
new_lst=sorted(lst)
print(lst)
print(new_lst)
#指定关键字参数,实现列表元素的降序排列
desc_list=sorted(lst,reverse=True)
print(desc_list)
运算结果:
排序前: [20, 40, 10, 98, 54] 1963111628928
排序后: [10, 20, 40, 54, 98] 1963111628928
排序前: [20, 40, 10, 98, 54] 1963115518976
排序后: [98, 54, 40, 20, 10] 1963115518976
原列表: [20, 40, 10, 98, 54]
[20, 40, 10, 98, 54]
[10, 20, 40, 54, 98]
[98, 54, 40, 20, 10]
五、列表生成
#列表生成,也就是生成列表的公式 #生成一个一到八列表 lst=[i for i in range(1,9)] print(lst) #[1, 2, 3, 4, 5, 6, 7, 8] #生成2,4,6,8,10的一个列表 lst=[i*2 for i in range(1,6)] print(lst) #[2, 4, 6, 8, 10]
浙公网安备 33010602011771号