Frases de picking que contienen palabras específicas en pitón

IanWing:

Tengo una lista con 10 nombres y una lista con muchas de las frases. Sólo quiero para seleccionar las frases que contienen uno de esos nombres.

ArrayNames = [Mark, Alice, Paul]
ArrayPhrases = ["today is sunny", "Paul likes apples", "The cat is alive"]

En el ejemplo, ¿hay alguna manera de recoger sólo la segunda frase teniendo en cuenta la cara que contiene Pablo, dadas estas dos matrices? Esto es lo que he intentado:

def foo(x,y):
tmp = []
for phrase in x:
    if any(y) in phrase:
        tmp.append(phrase)     
print(tmp)

x es el conjunto de frases, y es la matriz de nombres. Esta es la salida:

    if any(y) in phrase:
TypeError: coercing to Unicode: need string or buffer, bool found

Estoy muy seguro acerca de la sintaxis he utilizado en relación con la construcción de cualquier (). ¿Alguna sugerencia?

Dani Mesejo:

Su uso de cualquier es incorrecta, haga lo siguiente:

ArrayNames = ['Mark', 'Alice', 'Paul']
ArrayPhrases = ["today is sunny", "Paul likes apples", "The cat is alive"]

result = []
for phrase in ArrayPhrases:
    if any(name in phrase for name in ArrayNames):
        result.append(phrase)

print(result)

Salida

['Paul likes apples']

Que está recibiendo un TypeError porque cualquier devuelve un bool y su tratando de buscar un bool dentro de una cadena ( if any(y) in phrase:).

Tenga en cuenta que any(y)las obras, ya que utilizará el Truthy valor de cada una de las cuerdas de y.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=342815&siteId=1
Recomendado
Clasificación