Мне нужно извлечь номер мобильного телефона из списка словарей с помощью регулярных выражений.
Нужно извлечь только из d [num]
Словарь:
d = [{'name': 'a', 'num': '9134567890','num2':'912311111'},
{'name': 'd', 'num': '9134567890','num2':'5151'},
{'name': 'b', 'num': '0134567890','num2':'51'},
{'name': 'c', 'num': '9034567890','num2':'12'},
{'name': 'm', 'num': '9034590','num2':'13'}
]
- Номер телефона является значением для ключа
"num"
для каждого словаря. - Все номера телефонов должны содержать 10 цифр.
- Если номер телефона начинается с
91
, это 'local'
. - Если номер телефона начинается с
01
, это 'global'
. - Если номер телефона начинается с чего-либо еще, это
'others'
.
Псевдокод:
s = {'locals':[], 'global':[], 'others':[]}
for i in d:
for k,v in i.items():
#if num starts with 91:
#append locals
#elif num starts with 01:
#append to globals
#else:
#append to others
Псевдокод
for i in my_dict_1:
print ([ v for k,v in i.items() if str(v).startswith('91') if i['num']])
Мой ожидаемый результат:
{'locals':[a,d], 'global':['b'], 'others':['d']}
С момента вопросаПрикоснись Я решил вопрос
s = {'locals':[], 'global':[],'others':[]}
for i in d:
if i['num'].startswith('91'):
s['locals'].append(i['num'])
elif i['num'].startswith('01'):
s['global'].append(i['num'])
else:
s['others'].append(i['num'])
s
Out
{'global': ['0134567890'],
'locals': ['9134567890', '9134567890'],
'others': ['9034567890', '9034590']}