基本上我想在python中制作一个程序,给定一个单词列表和一个字母列表,它将打印出一个列表,其中仅包含字母列表中不包含任何字母的单词。
>lista = ["computador","comida","atum","pai","porco","amigo","bloco","carro","banana","janela","calculadora","caneca","prato","livro","jogo","fabrico","cruz","pedra","ar","vento"]
letras_prib = ["a","b"]
for palavra in lista:
for letra in letras_prib:
if letra in palavra:
listafinal = lista.remove(palavra)
print(listafinal)
在这里你可以看到单词列表是:
lista = ["computador","comida","atum","pai","porco","amigo","bloco","carro","banana","janela","calculadora","caneca","prato","livro","jogo","fabrico","cruz","pedra","ar","vento"]
字母列表是:
["a","b"]
我的问题是,当我运行这个确切的程序时,它只是打印出“无”。根据我的理解,它应该打印出不包含字母“a”或“b”的每个单词。 我真的需要帮助,因为我已经搜索了很多,但仍然不知道如何解决这个问题。 PS:如果您理解一些葡萄牙语单词有困难;
palavra = 字
lista = 列表
listafinal = 决赛名单
letra = 字母
letras_prib = 禁止使用的字母。
是的,列表中有不包含字母“a”或字母“b”的单词,例如“porco”。
答案 0 :(得分:1)
.remove
不会返回删除项目的新列表,而是原地删除它并返回 none
相反,将最终列表作为原始列表的副本开始,然后直接删除而不分配给变量
listafinal = lista[:] # When declaring listafinal
...
listafinal.remove(palavra) # Where you're currently removing
答案 1 :(得分:0)
您可以使用 del
从列表中删除元素。
并且在迭代列表时从最后一个迭代,因此从最后一个删除元素将删除所有元素。
检查以下代码:
lista = ["computador", "comida", "atum", "pai", "porco", "amigo", "bloco", "carro", "banana", "janela", "calculadora",
"caneca", "prato", "livro", "jogo", "fabrico", "cruz", "pedra", "ar", "vento"]
letras_prib = ["a", "b"]
for palavra in lista[::-1]:
for letra in letras_prib:
if letra in palavra and palavra in lista:
del lista[lista.index(palavra)]
print(lista)