Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在给定当前项列表的情况下替换字典中的元素_Python 3.x_Dictionary - Fatal编程技术网

Python 3.x 在给定当前项列表的情况下替换字典中的元素

Python 3.x 在给定当前项列表的情况下替换字典中的元素,python-3.x,dictionary,Python 3.x,Dictionary,我有一本字典,看起来像下面这本。我试图做的是找到缺少的月份,并将它们添加为一个值为Nan的新键 {'Congress': {'April': '5.902', 'August': '5.925', 'January': '5.881', 'February': '5.888', 'July': '5.920', 'June': '5.910', 'March': '5.896', 'May': '5.906', 'November': '5.942', 'Oc

我有一本字典,看起来像下面这本。我试图做的是找到缺少的月份,并将它们添加为一个值为Nan的新键

{'Congress': {'April': '5.902',
  'August': '5.925',
  'January': '5.881',
  'February': '5.888',
  'July': '5.920',
  'June': '5.910',
  'March': '5.896',
  'May': '5.906',
  'November': '5.942',
  'October': '5.938',
  'September': '5.933'},
 'Entity': {'April': '64.320',
  'August': '64.642',
  'December': '64.825',
  'January': '63.965',
  'February': '64.089',
  'July': '64.604',
  'June': '64.509',
  'March': '64.221',
  'May': '64.404',
  'October': '64.757',
  'September': '64.690'}}
在国会词典中,我们缺少12月,在实体词典中,我们缺少11月

到目前为止,我尝试创建一个名为months的列表,并对其进行迭代,以查找字典中哪些值不在列表中。但是,这似乎不起作用,因为当我尝试打印它时,它不会打印任何内容,因此它肯定不会添加键和值

list_of_months =['January','February','March','April','May','June','July','August','September','October','November','December']

for k, v in newd.items():
  for x in v.keys():
    if x not in list_of_months :
      print(x)
  
预期产出应为:

{'Congress': {'April': '5.902',
  'December': 'Nan' ---------------------> Missing value to be added
  'August': '5.925',
  'January': '5.881',
  'February': '5.888',
  'July': '5.920',
  'June': '5.910',
  'March': '5.896',
  'May': '5.906',
  'November': '5.942',
  'October': '5.938',
  'September': '5.933'},
 'Entity': {'April': '64.320',
  'November': 'Nan' ---------------------> Missing value to be added
  'August': '64.642',
  'December': '64.825',
  'January': '63.965',
  'February': '64.089',
  'July': '64.604',
  'June': '64.509',
  'March': '64.221',
  'May': '64.404',
  'October': '64.757',
  'September': '64.690'}}
有人能向我解释一下我做错了什么,有什么更好的方法可以检查当前月份并添加缺失的月份


谢谢

使用
设置
差异来检查缺少的月份

Ex:

list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}

for k,v in data.items():
    for i in list_of_months - set(v.keys()): # Check for missing Month
        v[i] = 'Nan'      # Add Month
            
print(data)
{'Congress': {'April': '5.902',
              'August': '5.925',
              'December': 'Nan',
              'February': '5.888',
              'January': '5.881',
              'July': '5.920',
              'June': '5.910',
              'March': '5.896',
              'May': '5.906',
              'November': '5.942',
              'October': '5.938',
              'September': '5.933'},
 'Entity': {'April': '64.320',
            'August': '64.642',
            'December': '64.825',
            'February': '64.089',
            'January': '63.965',
            'July': '64.604',
            'June': '64.509',
            'March': '64.221',
            'May': '64.404',
            'November': 'Nan',
            'October': '64.757',
            'September': '64.690'}}
输出:

list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}

for k,v in data.items():
    for i in list_of_months - set(v.keys()): # Check for missing Month
        v[i] = 'Nan'      # Add Month
            
print(data)
{'Congress': {'April': '5.902',
              'August': '5.925',
              'December': 'Nan',
              'February': '5.888',
              'January': '5.881',
              'July': '5.920',
              'June': '5.910',
              'March': '5.896',
              'May': '5.906',
              'November': '5.942',
              'October': '5.938',
              'September': '5.933'},
 'Entity': {'April': '64.320',
            'August': '64.642',
            'December': '64.825',
            'February': '64.089',
            'January': '63.965',
            'July': '64.604',
            'June': '64.509',
            'March': '64.221',
            'May': '64.404',
            'November': 'Nan',
            'October': '64.757',
            'September': '64.690'}}

使用
set
difference检查缺少的月份

Ex:

list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}

for k,v in data.items():
    for i in list_of_months - set(v.keys()): # Check for missing Month
        v[i] = 'Nan'      # Add Month
            
print(data)
{'Congress': {'April': '5.902',
              'August': '5.925',
              'December': 'Nan',
              'February': '5.888',
              'January': '5.881',
              'July': '5.920',
              'June': '5.910',
              'March': '5.896',
              'May': '5.906',
              'November': '5.942',
              'October': '5.938',
              'September': '5.933'},
 'Entity': {'April': '64.320',
            'August': '64.642',
            'December': '64.825',
            'February': '64.089',
            'January': '63.965',
            'July': '64.604',
            'June': '64.509',
            'March': '64.221',
            'May': '64.404',
            'November': 'Nan',
            'October': '64.757',
            'September': '64.690'}}
输出:

list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}

for k,v in data.items():
    for i in list_of_months - set(v.keys()): # Check for missing Month
        v[i] = 'Nan'      # Add Month
            
print(data)
{'Congress': {'April': '5.902',
              'August': '5.925',
              'December': 'Nan',
              'February': '5.888',
              'January': '5.881',
              'July': '5.920',
              'June': '5.910',
              'March': '5.896',
              'May': '5.906',
              'November': '5.942',
              'October': '5.938',
              'September': '5.933'},
 'Entity': {'April': '64.320',
            'August': '64.642',
            'December': '64.825',
            'February': '64.089',
            'January': '63.965',
            'July': '64.604',
            'June': '64.509',
            'March': '64.221',
            'May': '64.404',
            'November': 'Nan',
            'October': '64.757',
            'September': '64.690'}}

给你。。。您可能需要对其进行一些修改,以便将其准确地用于您的用例

代码:

list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}

for k,v in data.items():
    for i in list_of_months - set(v.keys()): # Check for missing Month
        v[i] = 'Nan'      # Add Month
            
print(data)
{'Congress': {'April': '5.902',
              'August': '5.925',
              'December': 'Nan',
              'February': '5.888',
              'January': '5.881',
              'July': '5.920',
              'June': '5.910',
              'March': '5.896',
              'May': '5.906',
              'November': '5.942',
              'October': '5.938',
              'September': '5.933'},
 'Entity': {'April': '64.320',
            'August': '64.642',
            'December': '64.825',
            'February': '64.089',
            'January': '63.965',
            'July': '64.604',
            'June': '64.509',
            'March': '64.221',
            'May': '64.404',
            'November': 'Nan',
            'October': '64.757',
            'September': '64.690'}}
dt={'Congress':{'April':'5.902',
‘八月’:‘5.925’,
‘一月’:‘5.881’,
‘二月’:‘5.888’,
‘7月’:‘5.920’,
‘六月’:‘5.910’,
‘三月’:‘5.896’,
‘五月’:‘5.906’,
‘十一月’:‘5.942’,
‘十月’:‘5.938’,
‘九月’:‘5.933’},
‘实体’:{‘四月’:‘64.320’,
‘八月’:‘64.642’,
‘十二月’:‘64.825’,
‘一月’:‘63.965’,
‘二月’:‘64.089’,
‘七月’:‘64.604’,
‘六月’:‘64.509’,
‘三月’:‘64.221’,
“May”:“64.404”,
‘十月’:‘64.757’,
“九月”:“64.690”}
}
月份={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”,
“八月”、“九月”、“十月”、“十一月”、“十二月”}
def填充月份(字典:dict,replace:str=“NaN”)->dict:
"""
用一些替换字符串(默认值:NaN)填充缺少的月份。
Args:
字典:缺少月份的字典。
替换:为缺少的月份添加的值。
返回:
缺少月份和某些字符串值的字典。
"""
对于idx(月份-设置(dictionary.keys()):
字典[idx]=替换
返回字典
打印(填写月份(dt[“国会]))
打印(填写月份(dt[“实体”]))

给你。。。您可能需要对其进行一些修改,以便将其准确地用于您的用例

代码:

list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}

for k,v in data.items():
    for i in list_of_months - set(v.keys()): # Check for missing Month
        v[i] = 'Nan'      # Add Month
            
print(data)
{'Congress': {'April': '5.902',
              'August': '5.925',
              'December': 'Nan',
              'February': '5.888',
              'January': '5.881',
              'July': '5.920',
              'June': '5.910',
              'March': '5.896',
              'May': '5.906',
              'November': '5.942',
              'October': '5.938',
              'September': '5.933'},
 'Entity': {'April': '64.320',
            'August': '64.642',
            'December': '64.825',
            'February': '64.089',
            'January': '63.965',
            'July': '64.604',
            'June': '64.509',
            'March': '64.221',
            'May': '64.404',
            'November': 'Nan',
            'October': '64.757',
            'September': '64.690'}}
dt={'Congress':{'April':'5.902',
‘八月’:‘5.925’,
‘一月’:‘5.881’,
‘二月’:‘5.888’,
‘7月’:‘5.920’,
‘六月’:‘5.910’,
‘三月’:‘5.896’,
‘五月’:‘5.906’,
‘十一月’:‘5.942’,
‘十月’:‘5.938’,
‘九月’:‘5.933’},
‘实体’:{‘四月’:‘64.320’,
‘八月’:‘64.642’,
‘十二月’:‘64.825’,
‘一月’:‘63.965’,
‘二月’:‘64.089’,
‘七月’:‘64.604’,
‘六月’:‘64.509’,
‘三月’:‘64.221’,
“May”:“64.404”,
‘十月’:‘64.757’,
“九月”:“64.690”}
}
月份={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”,
“八月”、“九月”、“十月”、“十一月”、“十二月”}
def填充月份(字典:dict,replace:str=“NaN”)->dict:
"""
用一些替换字符串(默认值:NaN)填充缺少的月份。
Args:
字典:缺少月份的字典。
替换:为缺少的月份添加的值。
返回:
缺少月份和某些字符串值的字典。
"""
对于idx(月份-设置(dictionary.keys()):
字典[idx]=替换
返回字典
打印(填写月份(dt[“国会]))
打印(填写月份(dt[“实体”]))

您共享的代码不会创建任何内容——它只会打印内部dict的键(如果没有)。请诚实地尝试解决问题,并将该尝试的代码作为示例共享。确保包含代码中的具体错误:“它不工作”不是报告问题的好方法。更多信息,和。您共享的代码没有创建任何内容——它只打印内部dict的键,如果它们不是。请诚实地尝试解决问题,并将该尝试的代码作为示例共享。确保包含代码中的具体错误:“它不工作”不是报告问题的好方法。更多信息请访问,和。