小甲鱼Python3学习笔记之第十一讲(仅记录学习)

时间:2022-01-12 22:05:12

第十一讲:列表,一个打了激素的数组

一、知识点:

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.在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长。

list1[0:6:2]

[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]

-------------------------------------------------------------------------------------------------------------------------