首页 > 解决方案 > 如何找到两个单词的相似性并以更有效的方式从列表中删除任何进一步的相似性?

问题描述

我正在尝试创建 Just One 棋盘游戏,我很难找到一种有效的方法来删除类似的线索而无需意大利面条代码。游戏的工作方式是从线索列表中删除任何提交的相似线索,这就是我在这里尝试复制的内容。据我所知,它似乎确实适用于至少两条相同的线索(例如骨头、骨头和叉骨)。有没有更有效、更少意大利面的方式来写这个?

for y in range(0,len(clues)):
if y == len(clues)-1:
    break
for z in range(y+1,len(clues)):
    if clues[y] in clues[z] or clues[z] in clues[y]:
        first_word = str(clues[y])
        second_word = str(clues[z])
        try:
            while True:
                clues.remove(first_word)
        except:
            pass
        try:
            while True:
                clues.remove(second_word)
        except:
            pass

标签: python

解决方案


我通常会将数据从列表转换为集合。集合通常只取1个数据,一个集合不能存储相同的数据,所以我认为通过将您的列表变成具有set()功能的集合,它将擦除所有相似的数据。

代码:

clues = [1, 3, 5, 1, 2, 3]
print(clues)
clues = set(clues)
print(clues)

输出:

[1, 3, 5, 1, 2, 3]
{1, 2, 3, 5}

推荐阅读