【问题标题】:Python dictionary keys with matching values [duplicate]具有匹配值的Python字典键[重复]
【发布时间】:2018-06-16 10:15:28
【问题描述】:

我有一本这样的字典,

a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3}

我想找到具有相同值的键。 我的输出应该是,

b=[ (1,4),(8,9),(3,7)]

我如何以 Python 的方式做到这一点。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:
    a = {1:2, 3:4, 4:2, 8:3,7:4,9:3, 5: 2}
    
    valueDict = {}
    
    mulKeys = []
    
    for key, value in a.items():
    
        if valueDict.get(value) == None:
    
            valueDict[value] = [key]
    
        else:
    
            preExisting = valueDict[value]
            preExisting.append(key)
            valueDict[value] = preExisting
    
    
    
    
    nested_lst_of_tuples = [tuple(l) for l in valueDict.values()]
    
    print(nested_lst_of_tuples)
    

    请注意,对于您给定的问题,您提到的输出是错误的。

    【讨论】:

      【解决方案2】:
      a={ 1:2, 3:4, 4:2, 8:3,7:4,9:3} 
      b=set(a.values())
      l=[]
      for i in b:
          l.append(tuple([k for k,v in a.items() if v == i]))
      
      print l # [(1, 4), (8, 9), (3, 7)]
      

      使用set可以轻松获取字典中的不同值。

      tuple() 将列表转换为元组。

      【讨论】:

      • 他想要它作为一个元组列表。
      • 谢谢。错过了。我已经做出了改变。
      • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 2022-10-14
      • 2013-11-21
      • 2012-10-22
      • 2017-03-13
      相关资源
      最近更新 更多