是否有一個原因,爲什麼這個名單補償工作: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