Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2021 13:33:46

vr
Зарегистрирован: 2021-04-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

как имея вот это :

 a = ['a 1', 'a 2', 'b 3', 'b4', 'c 5', 'a 6']
#получить ответ 
['a 1', 'a 2', 'c 5, 'a 6']



kay=1111, хуй пизда алибаба

Офлайн

#2 Авг. 8, 2021 13:47:45

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1393
Репутация: +  124  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

vr
как имея вот это :
непонятно что нужно,объясните по другому

Офлайн

#3 Авг. 8, 2021 16:29:21

vr
Зарегистрирован: 2021-04-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

нужно найти в списке все элементы по двум ключевым словам в данном случае это буквы а и с и при этом сохранить последовательность
у меня пока есть только вот такой вариант но он не подходит потому что в ответе теряется порядок

 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)])



kay=1111, хуй пизда алибаба

Отредактировано vr (Авг. 8, 2021 16:45:55)

Офлайн

#4 Авг. 8, 2021 17:12:26

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

 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']
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Авг. 8, 2021 19:44:12

vr
Зарегистрирован: 2021-04-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?


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



kay=1111, хуй пизда алибаба

Офлайн

#6 Авг. 8, 2021 19:51:25

vr
Зарегистрирован: 2021-04-14
Сообщения: 28
Репутация: +  1  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

ааааааааааааа иногда поражаюсь какой я тупой

 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
кажется задача решена
всем спасибо за внимание)



kay=1111, хуй пизда алибаба

Офлайн

#7 Авг. 8, 2021 21:35:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

vr
я совсем забыл о существовании or
Оно есть и в регулярках. Думаю это будет много эффективнее
 re.search("a|c",line)



Офлайн

#8 Авг. 9, 2021 01:28:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10005
Репутация: +  857  -
Профиль   Отправить e-mail  

как искать по двум и более параметрам сохраняя порядок?

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']
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version