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是可以把修改前的列表中的元素完全复制到新列表中的。

posted @ 2018-12-12 11:11  春帆CF  阅读(175)  评论(0)    收藏  举报