您的位置:首页 > 编程语言 > Python开发

Python第十天

2017-01-06 20:24 323 查看
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)分片:

可以取出列表中的多个元素

可以复制列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: