Форум сайта python.su
0
Здравствуйте! Помогите пожалуйста с составлением регулярного выражения. У меня есть список строк, у которых отличается только первая цифра, и мне необходимо составить РВ, при котором условию удовлетворяли бы лишь те строки, которые начинаются не с цифры 9. Пытался что-то типа этого сделать, но не работает:
import re a = ["0subloc","1subloc","9subloc"] if r'[0-8]subloc' in a: print "Yes" else: print "No"
Офлайн
61
А зачем тут регулярка?
a = ["0subloc","1subloc","9subloc"] for i in a: if i[0] is not '9': print i
Офлайн
0
Неправильно сформулировал вопрос, в списке могут быть строки, которые начинаются с числа, но заканчиваются не на “subloc”, например:
a = ["0subloc","1subloc","9subloc", "8bigarea", "7location"]
Отредактировано megoloman (Апрель 8, 2016 10:31:19)
Офлайн
61
Правильно!
За ким хером вобще включать думалку…
a = ["0subloc","1subloc","9subloc", "8bigarea", "7location"] for i in a: if i[0] is not '9' and i[-6:] == 'subloc': print i
Офлайн
0
Да, точно)
Но мне без цикла это надо проверить
Отредактировано megoloman (Апрель 8, 2016 10:41:22)
Офлайн
857
>>> import re >>> >>> lst = ['0subloc', '1subloc', '9subloc', '8bigarea', '7location'] >>> >>> pat = re.compile(r'^[^9]subloc') >>> list(filter(pat.search, lst)) ['0subloc', '1subloc'] >>>
Отредактировано py.user.next (Апрель 8, 2016 12:12:24)
Офлайн
61
Как вы собираетесь без цикла пройтись по списку?
что по вашему происходит в вашем коде if r'subloc' in a: ?
Офлайн
0
Мне необходимо проверить наличие строки в списке, ведь это же можно сделать так:
if stroka in list: print True
Офлайн
15
megoloman
Мне необходимо проверить наличие строки в списке, ведь это же можно сделать так:
a = ["0subloc","1subloc","9subloc", "8bigarea", "7location"] if any(i[0] is not '9' and i[-6:] == 'subloc' for i in a): print True
Офлайн
0
py.user.nextДа, спасибо, работает. А если необходимо проверять не в списке, а в словаре наличие ключа с теми же условиями?:
a = {'city': <City: Харьков>, '9subloc': [<Sublocality: Нет района>],'house_type': [], 'max_price': None, '5subloc': [<Sublocality: Героев труда>]}
Отредактировано megoloman (Апрель 8, 2016 10:57:41)
Офлайн