分片赋值和嵌套列表

1、分片赋值

 1 #分片赋值是列表一个强大的特性。示例如下:
 2 >>> list('女排夺冠了')
 3 ['', '', '', '', '']
 4 >>> boil=list('女排夺冠了')
 5 >>> boil
 6 ['', '', '', '', '']
 7 >>> show=list('hi,boy')
 8 >>> show
 9 ['h', 'i', ',', 'b', 'o', 'y']
10 >>> show[3:]=list('man')
11 >>> show
12 ['h', 'i', ',', 'm', 'a', 'n']
13 #由上述示例可以看出,可以通过分片赋值直接对列表进行变更。示例中我们通过分片操作变更了编号3之后位置的元素,即将boy替换了man了。
14 #上述示例中引入了一个新函数--list()函数。list()函数可以直接将字符串转换为列表。该函数的一个功能就是根据字符串创建列表,有时这样操作会很方便。list()函数不仅适合于字符串,所有类型的序列它都适用。
15 #再来看下面的例子:
16 >>> greeting=list('hi')
17 >>> greeting
18 ['h', 'i']
19 >>> greeting[1:]=list('ello')
20 >>> greeting
21 ['h', 'e', 'l', 'l', 'o']
22 #我们分析一下,前面给greeting赋的值是['h','i'],后面通过分片赋值操作将编号1之后的元素变更了,即将编号1位置的元素替换为e了,但是编号2之后没有元素,怎么能操作成功呢?并且一直操作到了编号4的位置?
23 #这就是分片赋值另一个强大的功能,可以使用与原序列不等长的序列将分片替换。
24 #再如示例:
25 >>> filed=list('ae')
26 >>> filed
27 ['a', 'e']
28 >>> filed[1:1]=list('bcd')
29 >>> filed
30 ['a', 'b', 'c', 'd', 'e']
31 >>> boil=list('女排夺冠了')
32 >>> boil
33 ['', '', '', '', '']
34 >>> boil[2:2]=list('2016年奥运会')
35 >>> boil
36 ['', '', '2', '0', '1', '6', '', '', '', '', '', '', '']
37 #从上面的示例可以看出,可以在不替换任何原有元素的情况下在任意位置插入新元素。
38 #当然,上面的示例程序只是一个“替换”了一个空分片,实际操作是插入一个序列。
39 #通过该示例是否想起前面的append()方法,不过分片赋值比append()方法强大多了。
40 
41 #看到这里,是否同时想起了前面删除元素的操作,分片赋值是否支持类似删除的功能呢?
42 >>> field=list('abcde')
43 >>> field
44 ['a', 'b', 'c', 'd', 'e']
45 >>> field[1:4]=[]
46 >>> field
47 ['a', 'e']
48 >>> boil=list('女排2017年奥运会夺冠了')
49 >>> boil[2:10]=[]
50 >>> boil
51 ['', '', '', '', '']
52 >>> field=list('abcde')
53 >>> field
54 ['a', 'b', 'c', 'd', 'e']
55 >>> del field[1:4]
56 >>> field
57 ['a', 'e']
58 #从上面的示例可以看到,使用了前面插入操作的逆操作证实了我们的猜想。删除和插入一样,可以对一个序列中任意位置的元素进行删除。
59 #所以通过分片赋值删除元素也是可行的,并且分片赋值删除的功能和del删除的操作结果是一样的。

2、嵌套列表

 1 >>> xiaotao=['a','b','c']
 2 >>> xiaotao
 3 ['a', 'b', 'c']
 4 >>> numbers=[1,2,3]
 5 >>> numbers
 6 [1, 2, 3]
 7 >>> min=[xiaotao,numbers]
 8 >>> min
 9 [['a', 'b', 'c'], [1, 2, 3]]
10 >>> min[0]
11 ['a', 'b', 'c']
12 >>> min[2]
13 Traceback (most recent call last):
14   File "<pyshell#207>", line 1, in <module>
15     min[2]
16 IndexError: list index out of range
17 >>> min[1]
18 [1, 2, 3]
19 #由上面的操作结果得知,在列表中可以嵌套列表,嵌套的列表取出后还是列表。
原文地址:https://www.cnblogs.com/DLHe/p/7685280.html