【问题标题】:Collecting key/value pairs in Python 2.6在 Python 2.6 中收集键/值对
【发布时间】:2011-05-29 16:30:34
【问题描述】:

在 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

有没有更好的办法?

【问题讨论】:

    标签: python dictionary python-2.6


    【解决方案1】:

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

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

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

    【讨论】:

    • 你以 10 秒的优势击败了我,得到了一个字符一个字符的相同答案。 :)
    • @Evgeny 这是一种语言的缺点,只有一种正确的方法;)
    • 实际上我会说这是一个不错的优势。提问者现在应该很确定正确的方法了! :)
    • 哇,真快,非常感谢大家!它现在完美运行:)
    【解决方案2】:
    return dict((u.id, u.name) for u in users)
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-06-16
        • 1970-01-01
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多