【问题标题】:How to convert set into dict in python [duplicate]如何在python中将set转换为dict
【发布时间】:2021-10-19 00:43:51
【问题描述】:

将集合转换为字典的最简单方法是什么?从{'a', 'b'} 说成{'a': 0, 'b': 1}?排序无关紧要,但它应该从 0 开始直到集合本身的大小。

【问题讨论】:

    标签: python dictionary set


    【解决方案1】:
    >>> a = {'a', 'b'}
    >>> dic = {i:val for val, i in enumerate(a)}
    >>> dic
    {'b': 0, 'a': 1}
    

    【讨论】:

    • 这会将0 分配给所有键。
    • 您的输出错误。所有键都用 0 值初始化。
    • 此解决方案由@ThePyGuy 和我提供
    【解决方案2】:

    你可以使用enumerate:

    set1={'a', 'b'}
    dict1={j:i for i,j in enumerate(set1)}
    print(dict1)
    

    输出:

    {'b': 0, 'a': 1}
    

    【讨论】:

    • 为什么要打电话给sorted(),订购没关系?
    【解决方案3】:

    只需将dict 构造函数与ziprange 一起使用:

    >>> 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}
    

    【讨论】:

      【解决方案4】:

      只需将字典理解与enumerate一起使用

      >>> s = {'a', 'b'}
      >>> {k:idx for idx,k in enumerate(s)}
      {'a': 0, 'b': 1}
      

      【讨论】:

      • dict理解是要走的路。看不到比这更 Pythonic 的了。
      猜你喜欢
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 2020-07-19
      • 1970-01-01
      相关资源
      最近更新 更多