python基础知识之列表
python基础知识之列表:
切片
增加
插入
删除
排序
翻转
统计
索引
扩展
.....
#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Author:Chun Fan names = ['awei','xiaomei','yujie','congcong'] #列表 names[0:4] # 切片:取0到4的元素,包含0,不包含4 names[:4] # 切片:从头开始取,0可以省略,和上句同等 names[1:-1] # 切片:取1到-1的元素,包含1,不包含-1 names[2:] # 切片:要取最后一个元素,一定不能写-1,必须这么写 names[0::2] # 切片:步长是2,就是隔一个取一个 names[::2] # 切片:从0开始可以这么写,和上句同等效果 names.append('Liuyu') #增加列表元素到列表的最后 names.insert(1,'FF') #插入到指定列表下表的位置 names.sort() #排序 names.reverse() #翻转顺序 names.insert(3,'FF') names.index('xiaomei') #索引即查找某个元素的位置,返回列表下标 names.count('FF') #统计某个元素的数量 names[0]= 'AA' #修改某个元素 names.pop() #删除最后一个元素 del names[0] #删除指定下标的元素 names.remove('congcong') #删除指定元素,和上面一句可以是相等的 names2 = [1,2,3,4] names.extend(names2) #扩展:把列表2合并到列表1中
接下来是复制(copy)
copy分两种:一是浅copy,就是说如果列表是多层的,只复制第一层列表;
二是深copy,就是说如果列表是多层的,可以把所有的层全都复制过来
具体可以看案例:
一:浅copy
第一种实现方法:
#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Author:Chun Fan names = ['awei','xiaomei',['ChunFan','CC','DD'],'yujie','congcong'] #列表 names2 = names.copy() print(names) print(names2) names[1] = '小梅' names[2][0] = 'AA' print(names) print(names2)
第二种实现方法:
#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Author:Chun Fan import copy names = ['awei','xiaomei',['ChunFan','CC','DD'],'yujie','congcong'] #列表 names2 = copy.copy(names) print(names) print(names2) names[1] = '小梅' names[2][0] = 'AA' print(names) print(names2)
上面两种实现的结果:
D:\Python37-32\python.exe E:/pycharm/oldboy/suiyi.py ['awei', 'xiaomei', ['ChunFan', 'CC', 'DD'], 'yujie', 'congcong'] ['awei', 'xiaomei', ['ChunFan', 'CC', 'DD'], 'yujie', 'congcong'] ['awei', '小梅', ['AA', 'CC', 'DD'], 'yujie', 'congcong'] ['awei', 'xiaomei', ['AA', 'CC', 'DD'], 'yujie', 'congcong'] Process finished with exit code 0
二:深copy
#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Author:Chun Fan import copy names = ['awei','xiaomei',['ChunFan','CC','DD'],'yujie','congcong'] #列表 names2 = copy.deepcopy(names) print(names) print(names2) names[1] = '小梅' names[2][0] = 'AA' print(names) print(names2)
实现的结果:
D:\Python37-32\python.exe E:/pycharm/oldboy/suiyi.py ['awei', 'xiaomei', ['ChunFan', 'CC', 'DD'], 'yujie', 'congcong'] ['awei', 'xiaomei', ['ChunFan', 'CC', 'DD'], 'yujie', 'congcong'] ['awei', '小梅', ['AA', 'CC', 'DD'], 'yujie', 'congcong'] ['awei', 'xiaomei', ['ChunFan', 'CC', 'DD'], 'yujie', 'congcong'] Process finished with exit code 0
PS:
从以上两个案例可以看出根本的区别:深copy是可以把修改前的列表中的元素完全复制到新列表中的。

浙公网安备 33010602011771号