代码之家  ›  专栏  ›  技术社区  ›  TheEyesHaveIt

Python是否将列表的dict转换为集合的dict?

  •  0
  • TheEyesHaveIt  · 技术社区  · 6 年前

    我有:

    myDict = {'a': [1,2,3], 'b':[4,5,6], 'c':[7,8,9]}

    myDict = {'a': set([1,2,3]), 'b':set([4,5,6]), 'c':set([7,8,9])}

    我是否可以使用一个线性函数来实现这一点,而不是循环使用它并转换值的类型?

    4 回复  |  直到 6 年前
        1
  •  4
  •   ForceBru    6 年前

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

    如果您使用的是Python 3.6+,还可以执行以下操作:

    dict(zip(myDict.keys(), map(set, myDict.values())))
    
        2
  •  0
  •   vash_the_stampede    6 年前

    map set

    myDict = dict(map(lambda x: (x[0], set(x[1])), myDict.items()))
    

    或者使用任何一种版本的 词典理解

    myDict = {k: set(v) for k, v in myDict.items()}
    myDict = {k: set(myDict[k]) for k in myDict}
    
        3
  •  0
  •   mayurmadnani    6 年前

    你可以使用理解:

    >>> myDict = {'a': [1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
    >>> myDict = {k: set(v) for k, v in myDict.items()}
    >>> myDict
    {'a': {1, 2, 3}, 'b': {4, 5, 6}, 'c': {8, 9, 7}}
    
        4
  •  0
  •   JoYSword    6 年前

    不管怎样,如果没有循环,就无法完成循环,但可以使用以下代码在一行中完成循环:

    myDict = {k:set(v) for k, v in myDict.items()}