Python自动化运维开发----基础(五)切片应用 && 列表函数
1.切片的应用
(1)复制列表: 直接赋值新的列表和用切片得到的新列表的区别?
使用直接赋值新列表的方式并且查看在内存中的位置,这种方式两个列表在内存中的位置是一样,一个列表改变另一个也会跟着改变
>>>a=[1,2,3]>>>b=a>>>id(a)139827490542536>>>id(b)139827490542536>>>a[0]=0>>>b[0]0>>>b[0,2,3]
用切片得到的列表是一个全新的列表,不会跟着之前的列表改变,列表在内存中的位置也不会改变
>>>c=a[:]>>>c[0,2,3]>>>a[0,2,3]>>>a[0]=1>>>a[1,2,3]>>>c[0,2,3]>>>id(a)139827490542536>>>id(c)139827490544840
(2)反转list
让list反序排列 step = -1时 list就会反转
>>>a[1,2,3]>>>a[::-1][3,2,1]
(3)获取索引编号都是偶数的列表元素
>>>a[1,2,3]>>>a[::2][1,3]
(4)获取索引编号都是奇数的列表元素
>>>a[1,2,3]>>>a[1::2][2]
(5)使用切片对列表进行增删改
通过切片使列表变成一个空列表
>>>a[1,2,3,1,2,4]>>>a[:]=[]>>>a[]
通过切片改变列表元素的值
>>>a[1,2,3,5,6]>>>a[2:3][3]>>>a[2:3]=[4,1]>>>a[1,2,4,1,5,6]
通过切片删除列表的元素
>>>a[1,2,4,1,5,6]>>>a[2:5]=[]>>>a[1,2,6]
2.切片的函数
查看切片的函数有哪些?
dir(list)
查看函数的使用帮助?
help(list.函数名)
(1)append 函数 做列表追加
>>>a[1,2,6]>>>a.append(5)>>>a[1,2,6,5]
(2)clear函数 情况列表的元素
>>>a[1,2,6,5]>>>a.clear()>>>a[]
a.clear() 和 a = [] 的区别?
在内存中的位置改变了
>>>a[1,2,5,6]>>>id(a)139827490570312>>>a=[]>>>id(a)139827490545224
(3)copy 函数 复制一个列表
>>>a=[1,2]>>>b=a.copy()>>>b[1,2]>>>id(a)139827490570312>>>id(b)139827490545480
(4)count 函数 统计value出现的次数
>>>a[1,2,1,2]>>>a.count(1)2>>>a.count(2)2
(5)extend 函数 扩展元素
>>>a[1,2,1,2]>>>a.extend('456')>>>a[1,2,1,2,'4','5','6']
extend 函数和 append 函数的区别?
>>>a.extend('456')>>>a[1,2,1,2,'4','5','6']>>>a.append(456)>>>a[1,2,1,2,'4','5','6',456]
extend 是把要添加的东西拆分成一个个元素添加在后边,append 是把要添加的作为一个整体作为一个整体
(6)index 函数 用来获取元素索引编号
>>>a[1,2,1]>>>a.index(1)0>>>a.index(2)1
(7)insert 函数 插入元素 (在指定的索引编号之前插入)
>>>a[1,2,1]>>>a.insert(1,3)>>>a[1,3,2,1]
(8)pop 函数 移除并返回元素值(默认是删除最后一个元素,可以指定删除的元素,需要指定索引编号)
a.pop(索引编号) 不写索引编号 默认是删除最后一个
>>>a[1,3,2,1]>>>a.pop()1>>>a[1,3,2]
(9)remove 函数 移除第一个匹配到的value
>>>a[1,3,2,1]>>>a.remove(1)>>>a[3,2,1]
(10)reverse 函数 反转
>>>a[3,2,1]>>>a.reverse()>>>a[1,2,3]
reverse 函数和 切片反转的区别?
reverse 改变了原来的列表 切片的反转没有改变原来的list
(11)sort 函数 排序
>>>a[2:3]=[6,5]>>>a[1,2,6,5]>>>a.sort()>>>a[1,2,5,6]
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。