python嵌套字典理解bug?

时间:2017-10-10 10:59:55

标签: python dictionary-comprehension

以下嵌套/双字典理解似乎给出了错误的结果:

>>> { k:v for k in range(2) for v in 'abc' }
{0: 'c', 1: 'c'}

用于比较的元组:

>>> [ (k,v) for k in range(2) for v in 'abc' ]
[(0, 'a'), (0, 'b'), (0, 'c'), (1, 'a'), (1, 'b'), (1, 'c')]

dict()相同的行为:

>>> dict( (k,v) for k in range(2) for v in 'abc' )
{0: 'c', 1: 'c'}

或者我在这里犯了一个概念上的错误?

1 个答案:

答案 0 :(得分:0)

也许我打算这样做:

>>> { k1: { k2 : (k1,k2) for k2 in range(2) } for k1 in range(3) }
...
{0: {0: (0, 0), 1: (0, 1)},
 1: {0: (1, 0), 1: (1, 1)},
 2: {0: (2, 0), 1: (2, 1)}}