创建具有列表理解功能的词典

  • 问题:
  • 我喜欢Python列表理解语法

    它也可以用来创建词典吗?例如,通过迭代键和值对:

    mydict = {(k,v) for (k,v) in blah blah blah}  # doesn't work

  • 答案:
  • 从Python2.7和3以后,应该只使用dict comprehension syntax公司名称:

    {key: value for (key, value) in iterable}

    在Python2.6和更早版本中,dict内置可以接收一个iterable的键/值对,因此可以向它传递一个列表理解或生成器表达式。例如:

    dict((key, func(key)) for key in keys)

    但是,如果您已经有了iterable键和/或VAL,则根本不需要使用任何理解方法—最简单的方法是直接调用dict内置函数:

    # consumed from any iterable yielding pairs of keys/vals
    dict(pairs)

    # "zipped" from two separate iterables of keys/vals
    dict(zip(list_of_keys, list_of_values))