Dictionary 使用map函数-Python更新列表中的字典键

Dictionary 使用map函数-Python更新列表中的字典键,dictionary,map-function,Dictionary,Map Function,我有一本电话号码字典,其中号码是关键,国家是价值。我想更新密钥并根据值country添加国家代码。我尝试使用map函数来实现以下目的: 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

我有一本电话号码字典,其中号码是关键,国家是价值。我想更新密钥并根据值country添加国家代码。我尝试使用map函数来实现以下目的:

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+01632960513':'UK'}]

请注意,第二个美国号码还有两个“1”。是什么原因造成的?如何修复?非常感谢

问题

你是。不要这样做。蟒蛇公约将是:

  • 制作一个
    new\u dict={}
  • 迭代输入
    a_dict
    时,将新项目分配给
    new_dict
  • 返回
    新命令
  • 注意,创造新事物,而不是改变旧事物——这可能是你痛苦的根源

    一些注释

    • 定义变量名时,请使用带下划线的小写字母(请参阅)
    • 查找值而不是更改输入命令,例如
      a_dict[k]
      a_dict.pop(k)
    • 缩进正确的空格数(请参阅)