相关疑难解决方法(0)

Python嵌套dict理解

有人可以解释如何做嵌套的字典理解吗?

>> j = dict(((x+y,0) for x in 'cd') for y in 'ab')
>> {('ca', 0): ('da', 0), ('cb', 0): ('db', 0)}
Run Code Online (Sandbox Code Playgroud)

我本来希望:

>> j
>> {'ca':0, 'cb':0, 'da':0, 'db':0}
Run Code Online (Sandbox Code Playgroud)

谢谢!

python dictionary list-comprehension

3
推荐指数
1
解决办法
3254
查看次数

字典理解嵌套循环不按计划工作

我有以下python代码:

print {a:b for a in [1, 2] for b in [3, 4, 5]}
Run Code Online (Sandbox Code Playgroud)

我希望能给我这样的东西:

{1:3, 1:4, 1:5, 2:3, 2:4, 2:5}
Run Code Online (Sandbox Code Playgroud)

但它反过来给了我这个:

{1: 5, 2: 5}
Run Code Online (Sandbox Code Playgroud)

我也有逆转,如环试了一下这里建议:

print {a:b for b in [3, 4, 5] for a in [1, 2]}
Run Code Online (Sandbox Code Playgroud)

但它仍然给了我错误的答案.而且我也在列表中尝试了同样的理解:

print [(a, b) for a in [1, 2] for b in [3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)

这与预期完全一致.

我对字典有什么看法?

仅供参考,python命令返回:

Python 2.7.4 (default, Apr 19 2013, 18:32:33) 
[GCC 4.7.3] on linux2
Run Code Online (Sandbox Code Playgroud)

python dictionary nested-loops python-2.7

1
推荐指数
1
解决办法
122
查看次数