Python列表(list)的常见操作

切片


#names列表原始值如下:
names = ["zhangsan","lisi","wangwu","zhaoliu","aaa","bbb","123","456","!@#$",[123,"456",789]]

print("-------------------------切片------------------------------------")
print(names[:5])   #截取下标0-4的元素
print(names[-2:])  #截取最后两个元素
print(names[2:8:2])  #从第三个元素到第8个元素间隔取值,步长为2
print(names[::2])  #间隔取值,步长为2
print(names[::-1]) #反转列表,相当于names.reverse()

输出如下:

-------------------------切片------------------------------------
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'aaa']
['!@#$', [123, '456', 789]]
['wangwu', 'aaa', '123']
['zhangsan', 'wangwu', 'aaa', '123', '!@#$']
[[123, '456', 789], '!@#$', '456', '123', 'bbb', 'aaa', 'zhaoliu', 'wangwu', 'lisi', 'zhangsan']

增删元素


#names列表原始值如下:
names = ["zhangsan","lisi","wangwu","zhaoliu","aaa","bbb","123","456","!@#$",[123,"456",789]]

print("-------------------------增加元素---------------------------------")
names.append("append") #将字符串append添加到列表末尾
names.insert(1,"insert1") #将字符串insert1添加到下标为1的位置,原有数据下标依次后移
names.insert(5,"insert5") #将字符串insert5添加到下标为5的位置,原有数据下标依次后移
print(names)

print("-------------------------删除元素---------------------------------")
names.remove("insert1")  #删除值为insert1的元素
del names[0] #删除下标为0的元素
print(names)
names.pop() #删除最后一个元素
names.pop(5) #删除下标为5的元素
print(names)

输出如下:

-------------------------增加元素---------------------------------
['zhangsan', 'insert1', 'lisi', 'wangwu', 'zhaoliu', 'insert5', 'aaa', 'bbb', '123', '456', '!@#$', [123, '456', 789], 'append']
-------------------------删除元素---------------------------------
['lisi', 'wangwu', 'zhaoliu', 'insert5', 'aaa', 'bbb', '123', '456', '!@#$', [123, '456', 789], 'append']
['lisi', 'wangwu', 'zhaoliu', 'insert5', 'aaa', '123', '456', '!@#$', [123, '456', 789]]

修改元素


#names列表原始值如下:
names = ["zhangsan","lisi","wangwu","zhaoliu","aaa","bbb","123","456","!@#$",[123,"456",789]]

print("-------------------------修改元素---------------------------------")
names[2] = "modify2" #将下标为2的元素的值修改为字符串modify2
print(names)

输出如下:

-------------------------修改元素---------------------------------
['zhangsan', 'lisi', 'modify2', 'zhaoliu', 'aaa', 'bbb', '123', '456', '!@#$', [123, '456', 789]]

查找元素


#names列表原始值如下:
names = ["zhangsan","lisi","wangwu","zhaoliu","aaa","bbb","123","456","!@#$",[123,"456",789]]

#查找元素
print("-------------------------查找元素---------------------------------")
print(names)
print(names.index("aaa"))  #输出值为aaa的元素的下标值
print(names[names.index("aaa")])

输出如下:

-------------------------查找元素---------------------------------
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'aaa', 'bbb', '123', '456', '!@#$', [123, '456', 789]]
4
aaa

计数/反转/排序/清空列表


#names列表原始值如下:
names = ["zhangsan","lisi","wangwu","zhaoliu","aaa","bbb","123","456","!@#$"]

#计数
print("-------------------------计数---------------------------------")
print(names.count("aaa"))  #输出值为aaa的元素的数量
#反转
print("-------------------------反转---------------------------------")
names.reverse() #反转列表
print(names)
#排序
print("-------------------------排序---------------------------------")
names.sort() #对列表排序,ASCII码顺序
print(names)
#清空列表
print("-------------------------清空---------------------------------")
names.clear() #清空列表
print(names)

输出如下:

-------------------------计数---------------------------------
1
-------------------------反转---------------------------------
['!@#$', '456', '123', 'bbb', 'aaa', 'zhaoliu', 'wangwu', 'lisi', 'zhangsan']
-------------------------排序---------------------------------
['!@#$', '123', '456', 'aaa', 'bbb', 'lisi', 'wangwu', 'zhangsan', 'zhaoliu']
-------------------------清空---------------------------------
[]

扩展列表


#扩展列表
a = [1,2,3]
b = [4,5,6]
print("-------------------------扩展列表---------------------------------")
a.extend(b)  #将b列表扩展到a列表末尾
print(a, b)

输出如下:

-------------------------扩展列表---------------------------------
[1, 2, 3, 4, 5, 6] [4, 5, 6]

复制列表(浅copy,深copy)


import copy

names = ["zhangsan","lisi","aaa","bbb","123","!@#$",[123,"456",789]]
name2 = names.copy()   #浅copy,只复制第一层,引用
name3 = copy.copy(names)   #浅copy,只复制第一层,引用
name4 = copy.deepcopy(names)  #深copy,完全复制没有关系
name5 = names  #不copy,只是将name5指向与names同一个地址

print("--------------------修改之前--------------------")
print("names                      ## :", names)
print("name2=names.copy()         ## :", name2)
print("name3=copy.copy(names)     ## :", name3)
print("name4=copy.deepcopy(names) ## :", name4)
print("name5=names                ## :", name5)


names[0] = "张三"
names[-1][0] = "xxx"

print("--------------------修改之后--------------------")
print("names                      ## :", names)
print("name2=names.copy()         ## :", name2)
print("name3=copy.copy(names)     ## :", name3)
print("name4=copy.deepcopy(names) ## :", name4)
print("name5=names                ## :", name5)

输出如下:

--------------------修改之前--------------------
names                      ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', [123, '456', 789]]
name2=names.copy()         ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', [123, '456', 789]]
name3=copy.copy(names)     ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', [123, '456', 789]]
name4=copy.deepcopy(names) ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', [123, '456', 789]]
name5=names                ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', [123, '456', 789]]
--------------------修改之后--------------------
names                      ## : ['张三', 'lisi', 'aaa', 'bbb', '123', '!@#$', ['xxx', '456', 789]]
name2=names.copy()         ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', ['xxx', '456', 789]]
name3=copy.copy(names)     ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', ['xxx', '456', 789]]
name4=copy.deepcopy(names) ## : ['zhangsan', 'lisi', 'aaa', 'bbb', '123', '!@#$', [123, '456', 789]]
name5=names                ## : ['张三', 'lisi', 'aaa', 'bbb', '123', '!@#$', ['xxx', '456', 789]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值