Python 如何通过仅更改人员索引向大型词典添加新词典

Python 如何通过仅更改人员索引向大型词典添加新词典,python,dictionary,Python,Dictionary,我有一个问题,因为我想使用循环将较小的字典添加到较大的字典中。我设法添加字典,称为1、2、3等。我希望这些字典前面加上单词“person”。你能用一行代码做到吗 这是我的实际代码: def smaller_dictionaries(number): dictionary_consist_of_3_smaller_dictionary ={number:{"surname":None,"name":None,"age":None,"profession":None,"marital sta

我有一个问题,因为我想使用循环将较小的字典添加到较大的字典中。我设法添加字典,称为1、2、3等。我希望这些字典前面加上单词“person”。你能用一行代码做到吗

这是我的实际代码:

def smaller_dictionaries(number):
    dictionary_consist_of_3_smaller_dictionary ={number:{"surname":None,"name":None,"age":None,"profession":None,"marital status":None} for number in range (1,number)}
    print (dictionary_consist_of_3_smaller_dictionary)
smaller_dictionaries(4)

and this is my output:

{1: {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 2: {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 3: {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}}
由于我想在循环中添加前缀“person”,程序显示没有定义名称“person”

dictionary_consist_of_3_smaller_dictionary ={person_(number):{"surname":None,"name":None,"age":None,"profession":None,"marital status":None} for number in range (1,number)}

I want to have output in this form:
{peson_1: {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, person_2: {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, person_3: {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}}

可以在循环中添加前缀“person”吗?

您得到的错误是因为Python将
person\uuu
视为变量名,因此它会引发一个未定义的错误:

未找到本地或全局名称时引发。这只适用于 非限定名称。关联的值是一条错误消息 包括找不到的名称

一种可能的解决方案(代码很少)是使用:

输出

{'person_1': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_2': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_3': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}}

我想你正在寻找这样的东西:

def smaller_dictionaries(number):
  dictionary_consist_of_3_smaller_dictionary={}
  for i in range(1,number+1):
    key_ = 'person_'+str(i)
    dictionary_consist_of_3_smaller_dictionary[key_] ={"surname":None,"name":None,"age":None,"profession":None,"marital status":None}
输出:

{'person_1': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_2': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_3': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_4': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}}
{'person_1': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_2': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_3': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}, 'person_4': {'surname': None, 'name': None, 'age': None, 'profession': None, 'marital status': None}}