dictx = {'C2': ['2', '5', '7'], 'A1': ['1','4', '5'], 'C1': ['2', '5'], 'A2': ['4', '5', '7', '8'], 'B3': ['4', '7'], 'B2': ['2', '4', '6', '7', '8']}
这是我的字典。我想回来: ' B2'和' A1'优选地在列表中,因为这两个键具有唯一值。订单并不重要。会喜欢一些帮助,因为我试图创建一大组for循环,但没有运气(如翻转)。
旁注:如果有帮助,字典的值范围为0-9字符串形式。
编辑:1和6令人困惑,抱歉 - 具体来说,它需要返回B2和A1,因为它们具有独特的值 - 而不是因为它们是那些值。
答案 0 :(得分:6)
对于不依赖于1和6作为唯一值的一般方法:
from collections import Counter
key_counter = Counter([entry for val in dictx.values() for entry in val])
print ([key for key in dictx if any(key_counter[val] == 1 for val in dictx[key])])
输出:
['A1', 'B2']