Python:列表数组中的唯一值

ada*_*ama 2 python tuples list

图像此输出来自fuzzywuzzy(值可能在另一个序列中):

[('car', 100, 28),
 ('tree', 80, 5),
 ('house', 44, 12),
 ('house', 44, 25),
 ('house', 44, 27)]
Run Code Online (Sandbox Code Playgroud)

我想把这三者一视同仁houses。只有唯一的字符串值才能得到这个结果的有效方法是什么:

编辑:由于所有houses值都相同44,我不在乎列表中的哪一个。最后一个house值无关紧要)

[('car', 100, 28),
 ('tree', 80, 5),
 ('house', 44, 12)]
Run Code Online (Sandbox Code Playgroud)

我在这里看到了很多关于列表唯一性的问题,但答案对我的示例不起作用,主要是因为作者只需要一个列表的解决方案。

我试过这个:

unique = []
for element in domain1:
    if element[0] not in unique:
        unique.append(element)
Run Code Online (Sandbox Code Playgroud)

我想我可以使用第一个值来处理element[0]并检查它们是否存在于unique. 如果我打印,unique我的结果与 after 相同fuzzywuzzy。似乎我的想法没有走在正确的道路上,那么我怎样才能达到我想要的结果呢?

谢谢!

Bea*_*own 7

例如,您可以使用 dict :

data = [('car', 100, 28),
    ('tree', 80, 5),
    ('house', 44, 12),
    ('house', 44, 25),
    ('house', 44, 27)
]
list({x[0]: x for x in reversed(data)}.values())
Run Code Online (Sandbox Code Playgroud)

给你

[('house', 44, 12), ('tree', 80, 5), ('car', 100, 28)]
Run Code Online (Sandbox Code Playgroud)

使用dict通过第一个元素为您提供唯一性,并且reversed需要为结果添加正确的值(默认情况下它将是最后一次满足)。