在Python 2.6中收集键/值对

Tia*_*dez 2 python dictionary python-2.6

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

return { u.id : u.name for u in users }
Run Code Online (Sandbox Code Playgroud)

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

return { u.id : u.name for u in users }
                             ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

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

values = {}

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

return values
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法?

aar*_*ing 10

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

return dict((u.id, u.name) for u in users)
Run Code Online (Sandbox Code Playgroud)

这将创建与更高版本中的字典理解相同的字典.

  • 你用10秒的时间打败了我,以一个符合角色的角色完全相同的答案.:) (2认同)