先看一些基本的操作
names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"] #打印第一个以及第三个元素 print(names[0],names[2])
切片操作:
print(names[1:3]) #打印下标为1到下标为2的元素内容,第3个元素不会被打印,因为python的切片操作是顾头不顾尾的 print(names[-2:]) #打印倒数第2个到结尾的元素内容 print(names[:3]) #相当于print(names[0:3]) print(names[-3:-1]) #打印倒数第3个到倒数第1个元素的内容,因为python读列表时从左到右读取的 print(names[0:-1:2]) #隔一个元素打印 print(names[::2]) #隔一个元素打印 print(names[:]) # 打印全部元素,相当于print(names)
列表自带的一些函数操作
#增加 names.append("LeiHaidong") #追加一个元素 names.insert(3,"Xinzhiyu") #在指定下标处插入一个元素 #合并一个列表的内容 names2 = [1,2,3,4] names.extend(names2) #删 names.remove("ChenRonghua") #del names[1] =names.pop(1) del names[1] names.pop(1) #如果使用names.pop(),默认弹出最后一个元素,并返回最后一个元素的内容 names.clear()#清空列表 del names2 #删除整个列表 #改 names[2] ="XieDi" #直接替代下标为2的元素内容 names.reverse() #元素内容反转 names.sort()#排序 #查 print(names.index("XieDi")) print(names.count("ChenRonghua")) #统计此内容的元素个数
浅拷贝以及深拷贝
先看浅拷贝
names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"] name2 = names.copy() #相当于copy.copy(names)或者name2 = name[:] 或者 names2 = list(names) print(names) print(name2) names[2] = "向鹏" names[3][0] ="ALEXANDER"
运行结果:
['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen'] ['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen'] ['4ZhangYang', '#!Guyun', '向鹏', ['ALEXANDER', 'jack'], 'ChenRonghua', 'XuLiangchen'] ['4ZhangYang', '#!Guyun', 'xXiangPeng', ['ALEXANDER', 'jack'], 'ChenRonghua', 'XuLiangchen'] #注意向鹏这一项,names2没有跟着改,而alex这一项全改了 Process finished with exit code 0
.copy()只能进行浅拷贝,复制到第一层,当列表当中还存在列表,就只会直接引用被复制元素的列表地址。
深拷贝
import copy names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"] name2 = copy.deepcopy(names) #深拷贝 print(names) print(name2) names[2] = "向鹏" names[3][0] ="ALEXANDER" print(names) print(name2)
运行结果:
['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen'] ['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen'] ['4ZhangYang', '#!Guyun', '向鹏', ['ALEXANDER', 'jack'], 'ChenRonghua', 'XuLiangchen'] ['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen'] Process finished with exit code 0
遍历列表
for i in names: print(i)