我不確定標題是否有意義,但我有兩個串列:
a = [[8, 23, 45, 12, 78, 58], [2, 3, 4,1,5,4], [6, 7, 6, 9, 5, 8] 。, [1, 2, 4, 7, 8]]
b = [1, 0 , 1 , 2]
我想嘗試將所有的a[0]與b[0]相乘,并對其他所有的人重復這樣做。 因此,有一個類似的輸出:
[8, 23, 45, 12, 78, 58], [0, 0, 0, >0, 0, 0], [6, 7, 6, 9, 8], [2, 4, 8, 14, 16 ]
我試著使用嵌套回圈的for回圈,但是我最后把所有的b和所有的a相乘。例如,我得到:
8。
23
45 45
12 12
78 78
58 58
0 0
0 0
0 0
0 0
0 0
6 6
以此類推。
是否可以用for回圈來做? 或者是否有其他的方法我應該考慮去做?
uj5u.com熱心網友回復:
你可以使用回圈理解:
[[b[i]*v for v in suba] for i,suba in enumerate(a)]
輸出:
[[8, 23, 45, 12, 78, 58], [0, 0, 0, 0, 0], [6, 7, 6, 9, 5, 8], [2, 4, 8, 14, 16] ]
uj5u.com熱心網友回復:
你可以使用numpy.reshape(1,-1)和*如下:
a = np.array([
np. array([8, 23, 45, 12, 78, 58] )。)
np. array([2,3,4, 1,5,4])。)
np. array([6, 7, 6, 9, 5, 8]) ,
np.array([1, 2, 4, 7, 8] )
])
b = np.array([1, 0 , 1 , 2]) 。 reshape(1,-1)
a*b
輸出:
array([array([ 8, 23, 45, 12, 78, 58]), array([0, 0, 0, 0, 0, 0] )。)
array([6, 7, 6, 9, 5, 8])。) array([ 2, 4, 8, 14, 16] ]。
dtype=object)
uj5u.com熱心網友回復:
使用回圈和列舉(獲取串列項的索引)
a = [[8, 23, 45, 12, 78, 58], [2, 3, 4,1,5,4】, [6, 7, 6, 9, 5, 8] 。, [1, 2, 4, 7, 8]]
b = [1, 0 , 1 , 2]
c = [] # output list
for idx, val in enumerate(b):
d=[]
for i in a[idx]:
d.append(i*val)
c.append(d)
print(c)
輸出
[[8, 23, 45, 12, 78, 58], [0, 0, 0, 0, 0], [6, 7, 6, 9, 5, 8], [2, 4, 8, 14, 16] ]
uj5u.com熱心網友回復:
如果你想看看如何用for回圈做這件事,你可以這樣做:
result = []
for i in range(len(b))。
result.append([b[i] * num for num in a[i]] )
如果你列印結果,你會得到:
[[8, 23, 45, 12, 78, 58], [0, 0, 0, 0, 0], [6, 7, 6, 9, 5, 8], [2, 4, 8, 14, 16] ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/308557.html
標籤:
下一篇:F#中串列的元素加法
