Skip to content Skip to sidebar Skip to footer

Removing Words From List In Python

I have a list 'abc' (strings) and I am trying to remove some words present in list 'stop' from the list 'abc' and all the digits present in abc. abc=[ 'issues in performance 421',

Solution 1:

You need to split each phrase into words and re-join the words into phrases after filtering out those in stop.

[' '.join(w forwin p.split() if w not in stop) forpin abc]

This outputs:

['issues in performance', 'how are you doing', 'hey my name is abc, what is your name', 'pleased', 'compliance installed']

Solution 2:

Here is a solution, using simple regular expression with the re.sub method. This solution removes numbers as well.

import re

abc=[ 'issues in performance 421',
 'how are you doing',
 'hey my name is abc, 143 what is your name',
 'attention pleased',
 'compliance installed 234']
stop=['attention\s+', 'installed\s+', '[0-9]']

[(lambda x: re.sub(r'|'.join(stop), '', x))(x) for x in abc]


'Output':
['issues in performance ',
'how are you doing',
 'hey my name is abc,  what is your name',
 'pleased',
 'compliance ']

Solution 3:

list1 = []
for word in abc:
    word1 = ''for remove_word in stop:
        word1 = remove_word
        word1 = word.replace(word1, '')
    list1.append(word1)

Solution 4:

This is how I'd do it at least:

abc=[ 'issues in performance 421',
    'how are you doing',
    'hey my name is abc, 143 what is your name',
    'attention pleased',
    'compliance installed 234'
]
stop=['attention', 'installed']
for x, elem inenumerate(abc):
    abc[x] = " ".join(filter(lambda x: x notin stop andnot x.isdigit(), elem.split()))
print(abc)

result:

['issues in performance','how are you doing','hey my name is abc, what is your name','pleased','compliance']

Hope it helps in any way :)

Solution 5:

It's just need to use set will good to this question. Because you maybe have more than one word at each item, so you can't use in. you should use set with & to get the public word. If it's exists public word with your stop set will return True. Because you only care about the rest part , so we can use if not here.

new_word=[word for word in abc if  not set(word.split(' ')) & set(stop)]

UPDATE

If you also want to delete all include digit item, you just simple do it with the following :

new_word=[word for word in abc ifnot (set(word.split(' ')) & set(stop) orany([i.strip().isdigit() for i in word.split(' ')]))]

Post a Comment for "Removing Words From List In Python"