是否有一个原因,为什么这个名单补偿工作:Python的条件字典解析
N = 5
d = {0:100, 2:5}
[(dpidx,d[dpidx]) if dpidx in d else (dpidx,dpidx) for dpidx in range(N)]
[(0, 100), (1, 1), (2, 5), (3, 3), (4, 4)]
但这字典补偿不起作用? :
{dpidx:d[dpidx] if dpidx in d else dpidx:dpidx for dpidx in range(N)}
{dpidx:d[dpidx] if dpidx in d else dpidx:dpidx for dpidx in range(N)}
^
SyntaxError: invalid syntax
我在寻找:
{0: 100, 1: 1, 2: 5, 3: 3, 4: 4}
我以为我可以只使用一个字典比较,而不是一个字典(名单COMP)。
在此先感谢!
‘dpidx字典’的理解是一个东西... – jondavidjohn 2012-02-20 23:59:12
为什么不是'{dp idx:d.get(dpidx,dpidx)为范围(N)中的dpidx}'? – 2012-02-21 00:02:02
词典解析是Python 3.x和2.7中的新增功能。 – 2012-02-21 00:02:33