上节课我们介绍一个打了激素的数组,叫做列表。列表我们比作一个大仓库,你所能够具现化的东西,都可以往里面扔,它包罗万象。另外还介绍了三个往列表添加元素的方法,分别是: append(),extend(),insert()
append()和extend()这两个方法都只有1个参数: append参数是一个准备插入列表的元素. extend参数是一个列表,它是用一个列表来扩展另一个列表 insert()方法有2个参数,第1个参数是带插入位置的索引值,第2个参数是准备插入的元素.
这个课我们接着谈一下列表常用的一些方法
跟数组一样,我们可以通过元素的索引值index从列表获取单个元素,注意,列表的索引值是从0开始。 例:
>>> member = ['小甲鱼', '小布丁', '黑夜', '怡静', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>> member[0] '小甲鱼' >>> member[1] '小布丁' >>> temp = member[0] >>> member[0] = member[1] >>> member ['小布丁', '小布丁', '黑夜', '怡静', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>> member[1] = temp >>> member ['小布丁', '小甲鱼', '黑夜', '怡静', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>>利用索引值,每次我们可以从列表获取一个元素,但是我们总是贪心的,如果一次性需要获取多个元素,有没有办法实现呢?利用列表分片,我们可以简单的实现这个要求。
>>> member ['小布丁', '黑夜', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>> >>> member[1:3] ['黑夜', '葫芦娃哇'] >>> member ['小布丁', '黑夜', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>> >>> member[:3] ['小布丁', '黑夜', '葫芦娃哇'] >>> member[:] ['小布丁', '黑夜', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>> member[1:] ['黑夜', '葫芦娃哇', '竹林小溪', 'Crazy迷恋'] >>> member2 = member[:] >>> member2 ['小布丁', '黑夜', '葫芦娃哇', '竹林小溪', 'Crazy迷恋']下边的列表分片操作会打印什么内容?
>>> list1 = [1,3,2,9,7,8] >>> list1[2:5] 运行结果: [2, 9, 7]请问list1[0]和list1[0:1]一样吗?
不一样,list1[0]返回第0个元素的值,list1[0:1]返回一个只含有第0个元素的列表。 >>> list1[0] 1 >>> list1[0:1] [1] >>>如果你每次想从列表末尾取出一个元素,并将这个元素插入列表的最前边,你会怎么做?
>>> list1 = [1, 3, 2, 9, 7, 8] >>> >>> list1.insert(0,list1.pop()) >>> list1 [8, 1, 3, 2, 9, 7]试试打印list1[-3:-1]
>>> list1 = [1, 3, 2, 9, 7, 8] >>> list1[-3:-1] [9, 7]python 的列表很聪明,支持负数索引,如图: 正常索引是从左到右索引,负数索引是从右到左。
在进行分片的时候,我们知道分片开始和位置结束需要进行指定,但其实还有另外一个隐藏的设置:步长。
在普通的分片操作中,步长默认设置为1,表示逐个遍历元素。其实我们可以人为调整步长达到不可告人的秘密。
>>> list1 = [1, 3, 2, 9, 7, 8] >>> list1[0:6:2] [1, 2, 7] >>> list1[::0] Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> list1[::0] ValueError: slice step cannot be zero >>> list1[::-2] [8, 9, 3]可用利用分片完成列表的拷贝list2 = list1[:],那事实上可不可以直接写成list2 = list1更加简洁呢? 例如:
>>> 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] >>> list2 [1, 3, 2, 9, 7, 8] >>> list3 [1, 2, 3, 7, 8, 9] >>>转载于:https://www.cnblogs.com/wanbin/p/9514700.html
相关资源:JAVA上百实例源码以及开源项目