我尝试遍历一个列表,并将所有单词附加到一个新列表中,不包括具有重复字母的单词。你知道吗
示例:
words = ['cat', 'car', 'weevil', 'lizard', 'mammoth', 'cabbage', 'aardvaark']
newlist = []
for word in words:
for letter in word
if word.count(letter) > 1:
pass
else:
newlist.append(word)
print(newlist)
# Result
['cat', 'cat', 'cat', 'car', 'car', 'car', 'weevil', 'weevil', 'weevil', 'weevil', 'lizard', 'lizard', 'lizard', 'lizard', 'lizard', 'lizard', 'mammoth', 'mammoth', 'mammoth', 'mammoth', 'cabbage', 'cabbage', 'cabbage', 'aardvaark', 'aardvaark', 'aardvaark']
代码实际上不起作用,因为像weevil这样的词可以满足字数.count(字母)字母“w”的条件,两个“e”通过两次,然后在两个“e”之后再满足三次,这就是为什么它出现在列表中四次。你知道吗
也许我是从错误的角度来看待这个问题,但我真的很困惑如何做到这一点。你知道吗
发生这种情况是因为它每次检查字母时都会附加单词。在追加单词之前,应该检查所有字母,这样就可以添加一个检查变量,查看是否所有字母都通过了,然后再追加单词。例如:
输出:
如果你有问题,你可以
如果一个单词没有重复的字母,那么它的长度就是它的字母集的长度。剩下的就是把这个放到list comprehension。你知道吗
尝试使用标准库提供的
filter
功能相关问题 更多 >
编程相关推荐