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"