У меня есть словарь телефонных номеров, где номер - это ключ, а страна - это значение.Я хочу обновить ключ и добавить код страны на основе значения страны.Я попытался использовать функцию карты для этого:
print('**Exmaple: Update phone book to add Country code using map function** ')
user=[{'952-201-3787':'US'},{'952-201-5984':'US'},{'9871299':'BD'},{'01632 960513':'UK'}]
#A function that takes a dictionary as arg, not list. List is the outer part
def add_Country_Code(aDict):
for k,v in aDict.items():
if(v == 'US'):
aDict[( '1+'+k)]=aDict.pop(k)
if(v == 'UK'):
aDict[( '044+'+k)]=aDict.pop(k)
if (v == 'BD'):
aDict[('001+'+k)] =aDict.pop(k)
return aDict
new_user=list(map(add_Country_Code,user))
print(new_user)
Это работает частично, когда я бегу, выведите ниже: [{'1 + 952-201-3787': 'US'}, {'1+1 + 1 + 952-201-5984 ':' US '}, {' 001 + 9871299 ':' BD '}, {' 044 + 01632 960513 ':' UK '}]
Обратите внимание на 2-еНомер в США имеет 2 дополнительные единицы.Что вызывает это? Как исправить?Большое спасибо.