列表的Python字典 - 返回具有唯一值的键

时间:2017-07-12 03:01:50

标签: python dictionary

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,因为它们具有独特的值 - 而不是因为它们是那些值。

1 个答案:

答案 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']