Найти - Пользователи
Полная версия: как искать по двум и более параметрам сохраняя порядок?
Начало » Центр помощи » как искать по двум и более параметрам сохраняя порядок?
1
vr
как имея вот это :
 a = ['a 1', 'a 2', 'b 3', 'b4', 'c 5', 'a 6']
#получить ответ 
['a 1', 'a 2', 'c 5, 'a 6']
xam1816
vr
как имея вот это :
непонятно что нужно,объясните по другому
vr
нужно найти в списке все элементы по двум ключевым словам в данном случае это буквы а и с и при этом сохранить последовательность
у меня пока есть только вот такой вариант но он не подходит потому что в ответе теряется порядок
 a = ['a 1', 'a 2', 'b 3', 'b4', 'c 5', 'a 6']
import re
research = ([x for x in a
            if re.search('a', x)] + [x for x in a
                                    if re.search('c', x)])
PEHDOM
 a = ['a 1', 'a 2', 'b 3', 'b4', 'c 5', 'a 6']
print([x for x in a if x[0] in 'ac'])
>>>
['a 1', 'a 2', 'c 5', 'a 6']
>>>
vr

PEHDOM
 a = ['a 1', 'a 2', 'b 3', 'b4', 'c 5', 'a 6']
print([x for x in a if x[0] in 'ac'])
>>>
['a 1', 'a 2', 'c 5', 'a 6']
>>>
vr
по двум ключевым словам в данном случае это буквы

этот способ находит всё где есть буквы а и с что работает с примером но как это применить на пркактике то?
опишу задачу ещё более подробно

у меня есть :
 a = ['data 3 august 2222' , 'message text',  'message text la la', 'bla bla bla', 'data 4 august 2222', 'message text la la la' ]
задача :
Найти все элементы списка где фигурирует слово data или messege
vr
ааааааааааааа иногда поражаюсь какой я тупой
 a = ['a 1', 'a 2', 'b 3', 'b4', 'c 5', 'a 6']
import re
research = [x for x in a
            if re.search('a', x) or re.search('c', x)] 
print (research)
я совсем забыл о существовании or
кажется задача решена
всем спасибо за внимание)
doza_and
vr
я совсем забыл о существовании or
Оно есть и в регулярках. Думаю это будет много эффективнее
 re.search("a|c",line)
py.user.next
vr
у меня есть :
  
a = ['data 3 august 2222' , 'message text',  'message text la la', 'bla bla bla', 'data 4 august 2222', 'message text la la la' ]
Найти все элементы списка где фигурирует слово data или messege
  
>>> import re
>>> 
>>> a = ['data 3 august 2222' , 'message text',  'message text la la', 'bla bla bla', 'data 4 august 2222', 'message text la la la' ]
>>> 
>>> out = [i for i in a if i.startswith(('data', 'message'))]
>>> out
['data 3 august 2222', 'message text', 'message text la la', 'data 4 august 2222', 'message text la la la']
>>> 
>>> out = list(filter(re.compile(r'^(data|message)').search, a))
>>> out
['data 3 august 2222', 'message text', 'message text la la', 'data 4 august 2222', 'message text la la la']
>>> 
>>> patc = re.compile(r'^(data|message)')
>>> out = list(filter(patc.search, a))
>>> out
['data 3 august 2222', 'message text', 'message text la la', 'data 4 august 2222', 'message text la la la']
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB