簡體   English   中英

+ =嵌套的For循環使用列表理解

[英]Nested For Loops with += Operating Using List Comprehension

我的代碼:

a = [[random.randint(0,10) for i in range(3)] for j in range(4)]
b = [0]*4
c = [random.random() for i in range(12)]
for i in range(len(a)):
    for j in a[i]:
        b[i] += c[j]

知道如何將其實現為列表理解嗎?

使用sum

b = [sum(row) for row in a]

編輯

b = [sum(c[i] for i in row) for row in a]

試試以下代碼片段:

import operator

b = [sum(map(operator.getitem,[c]*3, a_)) for a_ in a]

或與operator.itemgetter

b = [sum(operator.itemgetter(*_a)(c)) for _a in a]

抱歉,這是您要的嗎?

import random

a = [[random.randint(0,10) for i in range(4)] for j in range(4)]
b = [0 for i in range(4)]

for i in a:
    for j in i:
        b[a.index(i)] += j

print b

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM