import re
red_dict= {u'Jharkhand': ['jarka09', 'jarka05'],
u'Karnataka': ['karnataka2013', 'karnatka2008']}
for key, value in red_dict.items():
num = re.findall(r'\d+',' '.join(value))
map(lambda x: x if len(x)==4 else '20'+x, num)
print num
Получение результатаДобавляя строку в список строк
['09', '05']
['2013', '2008']
Почему не «20» прилагаемую к двум список цифр элементов?
Для обычного использования, я могу подтвердить, что этот подход работает
l = ['a','b','cd']
map(lambda x:x if len(x)==2 else 'e'+x,l)
дает
['ea', 'eb', 'cd']
Использование '\ D' вместо' [^ \ d] '. + Используйте 'r'raw string'' для регулярного выражения (особенно если есть обратная косая черта). – falsetru
Версия регулярного выражения не будет работать для 'jarka20'. – falsetru