我不明白为什么这个python代码不起作用

2024-10-01 17:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上我想用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的单词。 我真的需要帮助,因为我已经搜索了很多,但仍然不知道如何解决这个问题。 附言:如果你听不懂一些葡萄牙语单词

palavra=单词

lista=列表

listafinal=finallist

letra=字母

letras_prib=禁止使用的字母

是的,列表中有些单词不包含字母“a”或字母“b”,例如“porco”


Tags: in程序列表字母单词letraslistapalavra
2条回答

您可以使用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)

.remove不返回删除了项的新列表,而是将其原地删除,不返回任何项

相反,将最终列表作为原始列表的副本开始,然后在不指定变量的情况下删除

listafinal = lista[:]  # When declaring listafinal
...
listafinal.remove(palavra)  # Where you're currently removing

相关问题 更多 >

    热门问题