首页 > 解决方案 > d如果在用户输入中不重复,则使用重复字母消除打印单词

问题描述

我在每个文件中有一个带有单词的文件。用户输入一些单词,脚本应该从给定的单词中打印单词。例如:“Donald Trump”输出:['lad', 'mould', 'trump', 'land', 'donald', 'dump'] 但是我无法解决如何消除重复字母的打印单词除非字母在输入中重复,否则它不会打印类似:laddd 或 dumpp 等。

letters = input('input words: ') #input words to generate words
letters = letters.replace(' ', '') #eliminate whitespace
letters= list(letters) #create a list out of given words
words = open('wordfile').read().splitlines()  #read the file with words
word_list=[]
print(".......................")
for word in words:
    if all(element in letters for element in word):  #if has letters from list
        print (word)
        word_list.append(word)
print(word_list)

标签: pythonpython-3.x

解决方案


check 试图查看从提供的有限字母列表中删除的单词中的每个字母## i.e letters.remove(i.lower() i here is the letter in word ##,即在您的示例donaldtrump中,现在作为示例,如果laddd来了,字母d将从donaldtrump中删除两次,而第三次删除它将引发异常(在这种情况下return False ) 因为在donaltrump中没有 3rd d。我希望这有帮助

def check(word,letter):
    letters = list(letter)
    try:
        for i in word:
            letters.remove(i.lower())
        return True
    except Exception as e:
        return False

letters = input('input words: ') 
letters = letters.lower().replace(' ', '') 
words = open('wordfile').read().splitlines()  
word_list=[]
print(".......................")
for word in words:
    if(check(word,letters)):
        word_list.append(word)
print(word_list)

推荐阅读