2

在 Python 2.7 中,我习惯于从数组中收集键/值对并将其作为散列返回:

return { u.id : u.name for u in users }

但事实证明它在 Python 2.6 中不起作用:

return { u.id : u.name for u in users }
                             ^
SyntaxError: invalid syntax

我怎样才能避免做这样的事情?

values = {}

for u in users:
  values[u.id] = u.name

return values

有没有更好的办法?

4

3 回答 3

10

只需将构造元组序列的生成器表达式传递给构造函数dict

return dict((u.id, u.name) for u in users)

这将创建与以后版本中的字典理解相同的字典。

于 2010-12-22T22:10:04.263 回答
1
return dict((u.id, u.name) for u in users)
于 2010-12-22T22:10:13.903 回答
1

构造dict函数采用可迭代的对。

return dict((u.id, u.name) for u in users)
于 2010-12-22T22:10:36.853 回答