Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中转换为集合字典_Python_Dictionary - Fatal编程技术网

在Python中转换为集合字典

在Python中转换为集合字典,python,dictionary,Python,Dictionary,我的python程序中有一个字典,它如下所示: cities = {'England' : ['Manchester'], 'Germany' : ['Stuttgart'], 'France' : ['Paris', 'Lyonn'], 'Italy' : ['Torino']} cities = {'England' : set(['Manchester']), 'Germany' : set

我的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'])}
现在我想将这本词典转换为如下形式:

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

有人知道吗?

简单地说,使用字典理解:

{key: set(value) for key, value in cities.items()}
这会将每个列表值映射到一个集合对象,作为一个新的DICITORANY对象

如果您使用的是Python 2,那么使用cities.iteritems将更有效

演示:


简单地说,使用字典理解:

{key: set(value) for key, value in cities.items()}
这会将每个列表值映射到一个集合对象,作为一个新的DICITORANY对象

如果您使用的是Python 2,那么使用cities.iteritems将更有效

演示:

你可以用

dict([(k, set(v)) for k,v in cities.items()])
你可以用

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

只需将每个值逐个转换为一个集合。这有什么问题?只需逐个将每个值转换为一个集合。这有什么问题吗?[..]列表理解太过分了,只需去掉两个括号,就可以使用生成器表达式。否则,这就是您在Python 2.6或更低版本中使用的语法,因为您还没有字典理解语法。我使用的是Python 2.6:当然,请看,在城市中使用dictk,setv for k,v。iteritems如果[…]列表理解过于复杂,您可以使用生成器表达式,只需删除两个括号即可。否则,这就是您在Python 2.6或更低版本中使用的语法,因为您还没有字典理解语法。我正在使用Python 2.6:当然,请参见,使用dictk,setv表示城市中的k,v。iteritems表示城市中的k,v。items:cities[k]=setv更新城市中的k,v的原始dictOr。items:cities[k]=setv更新原始dicts