【发布时间】:2017-05-24 22:11:44
【问题描述】:
我有
x = {'a':set([1]) , 'b':set([2]), 'c':set([3]) }
保证集合中只有一个元素。我需要将其转换为
{'a': 1, 'c': 3, 'b': 2}
以下作品:
x1 = {k:x[k].pop() for k in x.keys()} OR
x1 = {k:next(iter(x[k])) for k in x.keys()}
但我不喜欢它,因为pop() 这里正在修改原始集合。我需要以下帮助。
- 如何在理解范围内将解包用作mentioned here。
- 有什么办法吗,我可以使用
functools.reduce。 - 总体而言,有什么更好的或 Pythonic 的方式来做到这一点?
【问题讨论】:
-
functools.reduce与您尝试执行的操作几乎无关。
标签: python python-2.7 dictionary iterable-unpacking functools