【发布时间】:2021-01-04 16:15:33
【问题描述】:
我有一个单词列表,以及一个根据单词长度和单词中的字母搜索单词的函数。
最后的 for 循环遍历可能的单词列表(由给定的长度生成),如果它包含给定的字母,它应该打印该单词,或者如果它应该从可能的单词列表中删除该单词不包含给定的字母。
我怎样才能在这里做到这一点:
wlist = ['Apple', 'Banana', 'Cherry', 'Donkey']
def wordSearch(wlist):
posWords = []
length = int(input('Enter length of word: '))
print("POSSIBLE WORD(S):")
for word in wlist:
stripWord = word.replace(' ', '')
if len(stripWord) == length:
print("%s (%s)" % (word, length))
posWords.append(word)
while True:
searchOptions = ['Add Known Letter', 'Exit']
searchIndex, item = chooseFromMenu(searchOptions)
if searchIndex == 0:
letter = input('Enter letter: ')
print("POSSIBLE WORD(S):")
for word in posWords:
if letter in word:
print(word)
else:
# remove word from list somehow
else:
break
特别是这个块:
letter = input('Enter letter: ')
print("POSSIBLE WORD(S):")
for word in posWords:
if letter in word:
print(word)
else:
# remove word from list somehow
我尝试过 del word 和 posWords.pop(word) 但似乎都不起作用。
我也尝试过.remove(),但我记不起我做了什么。
我将详细介绍我在这里遇到的问题...
如果我输入字母“e”,它应该从可能的单词列表中删除“香蕉”,这样当我输入“n”时,我应该只得到“驴”,而不是“驴”和“香蕉”。
如果有道理的话。
我刚刚尝试了posWords.remove(word),它也没有这样做...
【问题讨论】:
-
很遗憾没有。在我决定自己写之前,我看到了那篇文章。解决方案没有解决我的问题。
-
为什么这些解决方案不起作用?
-
为什么在迭代时必须删除它们?分两步完成:打印所有匹配的单词,然后删除所有不匹配的单词。
-
“如何在遍历列表时删除列表中的项目?”的答案是否。想一个不同的方式来实现你的目标。
标签: python python-3.x list loops