Python第十天

来源:互联网 发布:淘宝卖家版下载 编辑:程序博客网 时间:2024/06/07 03:30
0)从列表中获取元素
>>> member = ['我','你','他']
>>> member[0]
'我'


1)从列表中删除元素 remove()
>>> member.remove('你')
>>> member
['我', '他']


2)从列表中删除元素 del
>>> del member[1]
>>> member
['我']


3)删除整个列表:del + 列表名
>>> del member
>>> member
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    member
NameError: name 'member' is not defined




4)从列表中删除元素 pop()[弹栈,不加参数默认弹出末尾元素值]


>>> member = ['我','你','他']
>>> member
['我', '你', '他']
>>> member.pop()
'他'
>>> member
['我', '你']


5)pop(i) 弹出下标为 i 的元素,并从列表中剔除之
>>> member
['我', '你']
>>> member.pop(0)
'我'
>>> member
['你']


6)列表分片(Slice):一次获取多个元素,原列表不改变


>>> member = ['我','你','他','我们']


>>> member
['我', '你', '他', '我们']
>>> member[1:2]
['你']
>>> member
['我', '你', '他', '我们']
>>> member[1:3]
['你', '他']




7)分片开始不设值默认为 0 ,末尾不设值默认为 (长度 - 1)


>>> member[:2]
['我', '你']
>>> member[2:]
['他', '我们']
>>> member[:]
['我', '你', '他', '我们']


8)列表的拷贝
>>> member2 = member[:]
>>> member2
['我', '你', '他', '我们']


课后题:


0)下边列表分片操作会打印什么内容?
>>> list1 = [1,3,2,9,7,8]
>>> list1[2:5]
答:[2, 9, 7],注意不包含 8 (因为 5-2 = 3,只有 3 个元素)


1)list[0] 和 list[0:1]一样吗?
答:不一样


2)如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?
答:
member = ['我','你','他','我们']
>>> member.insert(0,member.pop())
>>> member
['我们', '我', '你', '他']


3)list[-3:-1]会不会报错,怎么知道一试居然显示[9,7],这是怎么回事?
答:Python 的列表很聪明,竟然支持附属索引,如图:






正常索引是从左到右,负数索引是从右到左


4)在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长


0)之前提到的“简洁”,分片操作在这里有效:
>>> list1 = [1,3,2,9,7,8]


>>> list1[::2]
[1, 2, 7]




1)步长不能为0,要不就走不动了:
>>> list1[::0]
Traceback (most recent call last):
  File "<pyshell#61>", line 1, in <module>
   list1[::0]
ValueError: slice step cannot be zero


2)步长可以是负数,改变方向(从尾部开始向左走)
>>> list1[::-2]
[8, 9, 3]




5)课堂上小甲鱼说可以利用分片完成聊表拷贝 member2 = member[:],那事实上可不可以直接写成member2 = member 更加简洁呢?
答:不可以


比如:
>>> list1 = [1,3,2,9,7,8]
>>> list2 = list1[:]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3 = list1
>>> list3
[1, 3, 2, 9, 7, 8]


看上去貌似一样吧?但事实上,我们利用列表的一个方法做一下修改:


>>> list1.sort()
>>> list1
[1, 2, 3, 7, 8, 9]


看到 list1 已经从小到大排了序,那 list2 和 list3 呢?
>>> list2
[1, 3, 2, 9, 7, 8]


可以看到,list2 没有改变


>>> list3
[1, 2, 3, 7, 8, 9]


而 list3 变了


真正的原因:Python 的变量名就像一个标签,贴哪是哪,指哪打哪,参考图:












本节小结:
0)删除操作:
列表名+remove("元素名");
列表名+pop(i)   [i 可填可不填,不填就默认弹出末尾元素]
del 列表名


1)分片:
可以取出列表中的多个元素
可以复制列表
0 0
原创粉丝点击