python - 如何找到两个单词的相似性并以更有效的方式从列表中删除任何进一步的相似性?
问题描述
我正在尝试创建 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
解决方案
我通常会将数据从列表转换为集合。集合通常只取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}
推荐阅读
- android - 重用布局和片段
- django - 在 Elasticsearch DSL DRF 上搜索嵌套字段
- go - Kubernetes 中的 NSQ 集群
- javascript - 如何为箭头函数内的逻辑正确创建单元测试
- python - 撤消python中的标记化
- java - 类型“JavaCompile”属性“options.compilerArgumentProviders.apt$0.name”缺少输入或输出注释。升级到 Gradle 7 后出错
- css - 如何仅使用 CSS 更改特定 SVG 路径的颜色?
- amazon-redshift - 从 parquet 文件将具有默认值的数据加载到 Redshift
- elasticsearch - Elasticsearch Painless 获取基于 Doc 值的动态参数
- javascript - WebStorm 的流行插件