2017-05-12 3 views
1

J'ai un code qui imprime une liste avec des tuples avec des bigrammes. Pour plus de mots, je n'ai pas besoin de bigrams qui contiennent certains mots. J'ai deux listes différentes de mot d'arrêt que je veux appliquer aux bigrams. Je veux appliquer une liste aux premiers mots des bigrammes (index [0]) et une liste aux deuxièmes mots (index [1]).Comment supprimer des lignes de la liste des tuples?

J'ai essayé quelque chose comme ceci:

Maintenant, les bigrammes qui ne contiennent les mots d'arrêt sont imprimés, mais comment puis-je supprimer ces lignes du tuple?

+0

Pourquoi ne pas simplement utiliser 'filter' avec un prédicat? –

Répondre

2

Si vous ne souhaitez pas imprimer un tuple qui a contenu présent dans la liste d'arrêt, essayez ceci:

if gram[0] not in stop1 and gram[1] not in stop2: 
    print(gram) 
+0

Merci cela fonctionne parfaitement! –

+0

@ S.H Acceptez la réponse si cela a fonctionné pour vous. Cela peut aider les autres. :) – Sajin

1

l'indexation de votre seach avec pour i dans la gamme ...

stopListA = [3,5] 
myList = [(1,2), (3,4), (5,6)] 
for i in range(len(myList)): 
    if myList[i][0] in stopListA: 
     myList[i] = myList[i][1] 
print(myList) 

[(1,2), 4,6]