megoloman
Регулярку вы не можете применить к списку, потому что регулярные выражения работают со строками. Список - это точно не строка, это множество строк, к каждой из которых вы хотите применить рег. выражение. Для этого нужен цикл.
>>> 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'] >>>
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Давно уже словари являются итераторами по ключам. keys() используется тогда, когда надо получить вид (view) ключей.list(filter(pat.search, d.keys()))