我怎么知道字典中值的出现?

时间:2018-02-12 10:42:41

标签: python python-3.x dictionary

dict_data = {'1-0': [5400, 3601],
 '1-1': [2550, 1651],
 '1-3': [5400, 3601],
 '1-4': [5400, 3601],
 '1-5': [5400, 3601],
 '10-0': [3601, 2700]}

在这个例子中,我想得到的输出是所有的值,所以这个例子的输出应该是一个列表列表,在打印所有元素时给出这些值,基本上这个值应该只出现一次我们将创建的列表列表现在与dict_data中的值或键显示的次数相关:

[2550, 1651]
[5400, 3601]
[3601, 2700]

3 个答案:

答案 0 :(得分:2)

这应该有效

set(map(tuple, dict_data.values()))

示例输出:

{(2550, 1651), (3601, 2700), (5400, 3601)}

与列表列表相比,这不会丢失任何信息,但如果您确实需要这种格式,那么您可以这样做:

[list(t) for t in set(map(tuple, dict_data.values()))]

输出

[[5400, 3601], [2550, 1651], [3601, 2700]]

答案 1 :(得分:2)

列表不可清,所以为什么不使用循环:

L = []
for v in dict_data.values():
    if v not in L:
        L.append(v)

答案 2 :(得分:2)

如果您保留一组已经看到的内容,您可以在线性时间内执行此操作:

seen = set()
for v in dict_data.values():
    curr = tuple(v)
    if curr not in seen:
        seen.add(curr)

print(list(seen))

哪个输出:

[(5400, 3601), (2550, 1651), (3601, 2700)]