我的句子只有小写字母,没有空格,例如:
sentence = "markeatsbread"
和单词列表,例如:
b_list = ["yogurt","read","beam","drake","june","fire"]
我想创建一个函数,该函数生成一个新列表,其中不包含不能作为上述句子的字谜的单词。
我尝试过:
def list_reducer(sentence,b_list):
count = 0
g_list = []
for word in b_list:
for i in range(len(word)):
if word[i] not in sentence:
break
else:
count += 1
if count == len(word):
g_list.append(word)
return g_list
由于某些原因,由于g_list仅包含以下内容,因此代码无法正常工作
:["read"]
正确的结果应该是这样:
["read","beam","drake"]
已经有好几天了,但是我仍然不知道代码中的错误在哪里。 我究竟做错了什么? 预先感谢您的帮助。
答案 0 :(得分:1)
您不必重置每个新单词的计数,因此它总是在增加。 将计数分配移到for循环内。
def list_reducer(sentence, b_list):
g_list = []
for word in b_list:
count = 0
for i in range(len(word)):
if word[i] not in sentence:
break
else:
count += 1
if count == len(word):
g_list.append(word)
return g_list
或者,您可以删除计数并在循环中使用i。
def list_reducer(sentence, b_list):
g_list = []
for word in b_list:
for i in range(len(word)):
if word[i] not in sentence:
break
else:
if i == len(word)-1:
g_list.append(word)
return g_list