在操作list的时候,经常用到对列表的操作运算,比如说,列表添加,删除操作,其实,这里面经常回遇到这样一个问题,就是列表的操作容易被混淆了。
有人做了一个总结,这个很清晰,我就不多做阐述了:
1.append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加
2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加
3.+ 直接用+号看上去与用extend()一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上
4.+= 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加
这里面还有一个问题,就是怎么对list进行加减的操作,很多人都容易把+ -号直接用到加减运算,这样很容易出错。其实,加减的有另外的操作方法:
我写了一个例子,能够清晰的解释了几个的差别和异同,如下所示:
1 importnumpy as np2
3 left =[]4 right =[]5
6 data1 = [12,12,12,12,12,12,12]7 data2 = [12,12,12,12,12,12,12]8 data3 =[]9 for item indata1:10 left.append(item)11
12 for item1 indata2:13 right.append(item1)14
15 aleft =np.array(left)16 bleft =np.array(right)17
18 cleft = aleft -bleft19 dleft = aleft +bleft20 print("list a sub list b:")21 print(cleft)22 print("list a add list b:")23 print(dleft)24 print("list a append list b:")25 cleft = data1 +data226 data1.append(data2)27 print(cleft)28 print(data1)29 print("list a extend list b:")30 data3.extend(data2)31 print(data3)
运行结果:
list a sub list b:
[0 0 0 0 0 0 0]
list a add list b:
[24 24 24 24 24 24 24]
list a append list b:
[12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12]
[12, 12, 12, 12, 12, 12, 12, [12, 12, 12, 12, 12, 12, 12]]
list a extend list b:
[12, 12, 12, 12, 12, 12, 12]