a=[1,2,3] b=[4,5,6]
現將list a與 list b按位相加,其結果為[5,7,9]
方法一:
c=[a[i]+b[i] for i in range(min(len(a),len(b)))]
方法二:
c=list(map(lambda x :x[0]+x[1] ,zip(a,b)))
方法三:
調用numpy庫
import numpy as np c = np.array(a) + np.array(b)
map()函數:
map()函數接受兩個參數,一個是函數,一個是序列,map將傳入的函數作用到序列的每個元素,並返回一個可以列表化的map對象。(python2直接返回列表)
zip()函數:
zip()是Python的一個內建函數,它接受一系列可迭代的對象作為參數,將對象中對應的元素打包成一個個tuple(元組),然后返回由這些tuples組成的可list化的zip對象。若傳入參數的長度不等,則返回list的長度和參數中長度最短的對象相同。利用*號操作符,可以將list unzip(解壓)
>>> a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) <zip object at 0x02B01B48> #返回的是一個對象 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) [(1, 4), (2, 5), (3, 6)] >>> list(zip(*zipped)) #解壓也使用list進行轉換 [(1, 2, 3), (4, 5, 6)]
