使用两个或多个列表进行聚类

2024-05-19 01:06:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据单词或句子是否与另一个列表中的条目匹配来分类

像这样:

searchterms = ["windows pc", "linux laptop", "some gibberish"]
osCluster = ["windows", "linux"]

我现在要做的是遍历搜索词并使用osCluster列表对它们进行分类。最后,我想要一个类似csv的格式:

  • windows pc、windows
  • linux笔记本电脑,linux
  • 胡言乱语,不适用

现在我有这样的东西:

for searchterm in searchterms:
for os in osCluster:
    if os in searchterm:
        print searchterm, os

结果是:

windows pc windows
linux laptop linux
[Finished in 0.0s]

不过,我想把“一些胡言乱语”标记为“不适用”。如果我再加上:

else:
        print searchterm

这将导致:

windows windows
windows
linux
linux linux
gibberish
gibberish
[Finished in 0.0s]

我知道这是我写的程序要做的。但我认为这是一种错误的思维方式。如果你能给我指出正确的方向,我会非常感激的


Tags: in列表foroslinuxwindows分类print
1条回答
网友
1楼 · 发布于 2024-05-19 01:06:21

你很接近。以下是一些修正:

>>> searchterms = ["windows pc", "linux laptop", "some gibberish"]
>>> osCluster = ["windows", "linux"]

>>> for term in searchterms:
        found_cluster = 'N/A'
        for cluster in osCluster:
            if cluster in term:
                found_cluster = cluster
                break
        print('%-15s | %s' % (term, found_cluster))


windows pc      | windows
linux laptop    | linux
some gibberish  | N/A

相关问题 更多 >

    热门问题