第十一讲:列表,一个打了激素的数组
一、知识点:
0.从列表删除元素:remove(),del,pop()举例如下:
>>> list=[1,1,2,3,4,5,6,7] >>> list.remove(1) >>> list [1, 2, 3, 4, 5, 6, 7]
>>> del list[2] >>> list [1, 2, 4, 5, 6, 7]
>>> list.pop() 7 >>> list [1, 2, 4, 5, 6] >>> list.pop(4) 6 >>> list [1, 2, 4, 5] >>>1.列表分片(slice), 当需要一次性获取多个元素的时候, 就要使用列表的分片(slice)来实现。
- 实现的方式就是用一个冒号隔开两个索引值, 左边是开始位置, 右边是结束位置, 但结束位置上的元素是不包含的
利用列表的分配得到的是 原来列表的拷贝, 原来的列表并没有发生改变
列表分片也可以简写
>>> list = [0, 1, 2, 3, 4, 5, 6, 7] >>> list[:3] [0, 1, 2] >>> param[1:] [1, 2, 3, 4, 5, 6, 7] >>> param[:] [0, 1, 2, 3, 4, 5, 6, 7]列表分片操作实际上可以接收第三个参数,代表步长默认为1
>>> list = [0,1,2,3,4,5,6] >>> list[::2] [0, 2, 4, 6]
列表分片将步长设置为1,代表反转列表
>>> list[::-1] [6, 5, 4, 3, 2, 1, 0]
-------------------------------------------------------------------------------------------------------------------------
二、课后作业:
0. 下边的列表分片操作会打印什么内容?
>>> list1 = [1, 3, 2, 9, 7, 8]
>>> list1[2:5]
[2,9,7]
1.请问 list1[0] 和 list1[0:1] 一样吗?
不一样,list1[0]返回第0个元素的值,list1[0:1]返回一个只含有第0个元素的列表
2.如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?
list.insert(0,list.pop())
3.有些鱼油比较调皮,他说我想试试 list1[-3:-1] 会不会报错,怎么知道一试居然显示 [9, 7],这是怎么回事呢?
python3支持负数索引,从又到左,若要包含最后一个数则list1[-3:]
4.在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长。
[1,2,7]
简洁分片操作:
list1[::2]
步长不能为0,会报错
5.列表的复制
list1=[1,3,2,4] list2=list1[:] list3=list1 print(list1,list2,list3) list1.sort() print(list1,list2,list3) list1=[1,2,3,4] list2=[1,3,2,4] list3=[1,2,3,4]
-------------------------------------------------------------------------------------------------------------------------