转换为Python中的set字典

时间:2015-02-04 11:45:40

标签: python dictionary

我的python程序中有一个字典,它看起来像这样:

cities = {'England'  : ['Manchester'],
          'Germany'  : ['Stuttgart'],
          'France'   : ['Paris', 'Lyonn'],
          'Italy'    : ['Torino']}

现在我想以这样的形式转换这个字典:

cities = {'England'  : set(['Manchester']),
         'Germany'   : set(['Stuttgart']),
         'France'    : set(['Paris', 'Lyonn']),
         'Italy'     : set(['Torino'])}

有没有人有任何想法?

2 个答案:

答案 0 :(得分:4)

简单,使用词典理解:

{key: set(value) for key, value in cities.items()}

这会将每个列表值映射到一个set对象,作为一个新的dicitonary对象。

如果您使用的是Python 2,则使用cities.iteritems()会更有效。

演示:

>>> cities = {'England'  : ['Manchester'],
...           'Germany'  : ['Stuttgart'],
...           'France'   : ['Paris', 'Lyonn'],
...           'Italy'    : ['Torino']}
>>> {key: set(value) for key, value in cities.items()}
{'Italy': set(['Torino']), 'Germany': set(['Stuttgart']), 'England': set(['Manchester']), 'France': set(['Paris', 'Lyonn'])}

答案 1 :(得分:0)

您可以使用

dict([(k, set(v)) for k,v in cities.items()])