如果变量不在列表中==False,则返回空lis

2024-06-25 23:10:53 发布

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

我需要做一个程序,接受一个给定的字母串,并返回给定列表中只能用这些字母生成的所有单词。为此,我使用了两个For循环,一个用于列表中的单词,另一个用于每个单词中的字母。在

现在,为了得到只有给定字母才能写出的单词,我使用了以下方法:

def combinacion_palabras(lista_palabras,letras):
    palabras_correctas = []
    letras_correctas = []
    for i in letras:
        letras_correctas.append(i)
    for p in lista_palabras:
        for c in p:
            if c not in letras_correctas == False:
                palabras_correctas.append(p)

    return palabras_correctas

其中lista_palabras是给定单词的列表,letras是包含可用字母的字符串。我希望它返回一个包含lista_palabras中所有单词的列表,这些单词只由字符串letras中的字母组成,但是它返回一个空列表。我在犯什么错?提前谢谢。在


Tags: 方法字符串in程序列表fordef字母
2条回答

你的意思是这样吗?在

def combinacion_palabras(lista_palabras, letras):
    return [palabra for palabra in lista_palabras if set(palabra) <= set(letras) ]

palabras = ['tomo', 'tomas', 'toma', 'tomamos', 'toman', 'mata']

print(combinacion_palabras (palabras, 'tom') )
print(combinacion_palabras (palabras, 'atoms') )
print(combinacion_palabras (palabras, 'tma') )

或者更确切地说是这样?在

^{pr2}$

考虑这个例子:

>>> L = ['a', 'b']
>>> 'a' not in L
False
>>> 'a' not in L == False
False
>>> ('a' not in L) == False
True

优先顺序使L == False优先。在

如果您想确定列表中是否有一项,只需if c in letras_correctas:

相关问题 更多 >