用字典理解替换两个嵌套循环

时间:2012-04-23 10:13:31

标签: python dictionary list-comprehension

有没有办法用字典理解替换下面的代码?

d = {}

for i in xrange(A):
    for j in xrange(B):

         d[(i, j)] = f(i, j)

如果有任何不同,我正在使用Python2.7。

2 个答案:

答案 0 :(得分:5)

d = {(i,j):f(i,j) for i in xrange(A) for j in xrange(B)}

答案 1 :(得分:2)

itertools.product替换嵌套循环通常是个好主意:

from itertools import product
d = { p: f(*p) for p in product(range(A), range(B))}