【发布时间】:2021-10-19 00:43:51
【问题描述】:
将集合转换为字典的最简单方法是什么?从{'a', 'b'} 说成{'a': 0, 'b': 1}?排序无关紧要,但它应该从 0 开始直到集合本身的大小。
【问题讨论】:
标签: python dictionary set
将集合转换为字典的最简单方法是什么?从{'a', 'b'} 说成{'a': 0, 'b': 1}?排序无关紧要,但它应该从 0 开始直到集合本身的大小。
【问题讨论】:
标签: python dictionary set
>>> a = {'a', 'b'}
>>> dic = {i:val for val, i in enumerate(a)}
>>> dic
{'b': 0, 'a': 1}
【讨论】:
0 分配给所有键。
你可以使用enumerate:
set1={'a', 'b'}
dict1={j:i for i,j in enumerate(set1)}
print(dict1)
输出:
{'b': 0, 'a': 1}
【讨论】:
sorted(),订购没关系?
只需将dict 构造函数与zip 和range 一起使用:
>>> s = {'a', 'b'}
>>> dict(zip(s, range(len(s))))
{'b': 0, 'a': 1}
还有一个类似的方法,使用itertools.count:
>>> from itertools import count
>>> dict(zip(s, count()))
{'b': 0, 'a': 1}
【讨论】:
只需将字典理解与enumerate一起使用
>>> s = {'a', 'b'}
>>> {k:idx for idx,k in enumerate(s)}
{'a': 0, 'b': 1}
【讨论】: