首页 > 解决方案 > 从元组列表中删除相似度字符串

问题描述

我需要从元组列表中删除语义相似性字符串。

这是我的输入:

[(327, 328, 'Apache'), (327, 329, 'Apache Kafka'), (328, 329, 'Kafka')]

预期输出:

[(327, 329, 'Apache Kafka')]

实现结果的最佳方法是什么?

标签: pythonpython-3.x

解决方案


最简单的方法,但可能不是最优的。

data = [(327, 328, 'Apache'), (327, 329, 'Apache Kafka'), (328, 329, 'Kafka')]
result = []
print(data)
for item1 in data:
    hasSimilar = False
    for item2 in data:
        if item2==item1:
            continue
        if item1[2] in item2[2]:
            hasSimilar = True
            break
    if not hasSimilar:
        result.append(item1)
print(result)

输出:

[(327, 328, 'Apache'), (327, 329, 'Apache Kafka'), (328, 329, 'Kafka')]
[(327, 329, 'Apache Kafka')]

推荐阅读