Найти - Пользователи
Полная версия: Регулярные выражения
Начало » Python для новичков » Регулярные выражения
1 2
FishHook
megoloman
Регулярку вы не можете применить к списку, потому что регулярные выражения работают со строками. Список - это точно не строка, это множество строк, к каждой из которых вы хотите применить рег. выражение. Для этого нужен цикл.
r00tl3ss
>>> import re
>>> 
>>> d = {'0subloc': 'found1','1subloc':'found2','9subloc':'not found1', '8bigarea': 'not found2', '7location':'not found3'}
>>> 
>>> pat = re.compile(r'^[^9]subloc')
>>> list(filter(pat.search, d.keys()))
['0subloc', '1subloc']
>>>
py.user.next
megoloman
А если необходимо проверять не в списке, а в словаре наличие ключа с теми же условиями?:
>>> import re
>>> 
>>> dct = {'0subloc': 1, '1subloc': 2, '9subloc': 3, '8bigarea': 4, '7location': 5}
>>> 
>>> pat = re.compile(r'^[^9]subloc')
>>> list(filter(pat.search, dct))
['0subloc', '1subloc']
>>>

r00tl3ss
list(filter(pat.search, d.keys()))
Давно уже словари являются итераторами по ключам. keys() используется тогда, когда надо получить вид (view) ключей.
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