Reputation: 73
Please help me out to extract the string containing particular text. I have tried with below:
lst = [['abc', 'abgoodhj', 'rygbadkk'], ['jhjbadnm'], ['hjhj', 'iioytu'], ['hjjh', 'ghjgood1hj', 'jjkkbadgghhj', 'hjhgkll']]
for lst1 in lst:
good_wrd = [txt for txt in lst1 if txt.contains('good')]
bad_wrd = [txt for txt in lst1 if txt.contains('bad')]
I want the words that contain good
and bad
.
Upvotes: 1
Views: 406
Reputation: 6234
use list comprehension to create a new list.
good_wrd = [
word
for sub_lst in lst
for word in sub_lst
if "good" in word
]
bad_wrd = [
word
for sub_lst in lst
for word in sub_lst
if "bad" in word
]
Alternatively using for loops:
good_wrd = []
bad_wrd = []
for sub_lst in lst:
for word in sub_lst:
if "bad" in word:
bad_wrd.append(word)
elif "good" in word:
good_wrd.append(word)
Upvotes: 1
Reputation: 1394
target1 = 'good'
target2 = 'bad'
goods = []
bads = []
for lis in lst:
for txt in lis:
if target1 in txt:
goods.append(txt)
elif target2 in txt:
bads.append(txt)
Upvotes: 0
Reputation: 658
This would work:
lst = [['abc', 'abgoodhj', 'rygbadkk'], ['jhjbadnm'], ['hjhj', 'iioytu'], ['hjjh', 'ghjgood1hj', 'jjkkbadgghhj', 'hjhgkll']]
good_wrd = []
bad_wrd = []
for lst1 in lst:
good_wrd.extend([txt for txt in lst1 if 'good' in txt])
bad_wrd.extend([txt for txt in lst1 if 'bad' in txt])
print(good_wrd)
print(bad_wrd)
Upvotes: 0