首页 > 解决方案 > 如何从包含超过 7 个唯一字符的列表中删除字符串?

问题描述

从列表中删除包含超过 8 个唯一字符的字符串的正确方法是什么?

例如,假设我有一个看起来像 ['jazz', 'messu', 'jazzmessu', 'jazzmessut'] 的列表,我需要从列表中删除 'jazzmessut',因为它包含超过 7 个独特的字母(j, a, z, m, e, s, u, t)。

我一直在尝试从这样的文件中删除这些词:

file1 = ['jazz', 'messu', 'jazzmessu', 'jazzmessut']
file2 = []

alphabet = [x for x in 'abcdefghijklmnopqrstuvwxyz']

for word in file1:
    if set(alphabet) in set(word) < 8:
        file2.append(word)

print(file2)

然而,这只返回一个空文件,所以我一定做错了什么。

在将它们作为集合进行比较之前,我应该以某种方式拆分每个单词还是做其他事情?

标签: python

解决方案


您可以循环一次并检查唯一字母的长度是否小于 8。

>>> file1 = ['jazz', 'messu', 'jazzmessu', 'jazzmessut']
>>> file2 = [file for file in file1 if len(set(file)) < 8]
>>> file2
['jazz', 'messu', 'jazzmessu']

推荐阅读