我有一个函数,它将 id、name、age、country 作为输入,并将其放入字典中的字典中,如下所示:{0:{Name: "Name1", Age: 21, Country: "Country1}}。我打算把它放在一个数组中。
我希望我的字典数组看起来像这样:
[
{
0: {
'Name': 'Name1',
'Age': 21,
'Country': 'Country1'
},
1: {
'Name': 'Name2',
'Age': 22,
'Country': 'Country2'
},
3: {
'Name': 'Name3',
'Age': 23,
'Country': 'Country3'
}
}
]
Run Code Online (Sandbox Code Playgroud)
但是,我当前的数组如下所示:
[
{
0: {
'Name': 'Name1',
'Age': 21,
'Country': 'Country1'
}
},
{
1: {
'Name': 'Name2',
'Age': 22,
'Country': 'Country2'
}
},
{
3: {
'Name': 'Name3',
'Age': 23,
'Country': 'Country3'
}
}
]
Run Code Online (Sandbox Code Playgroud)
两者之间在括号 {} 的放置方式方面存在细微差别。 如何使我的字典数组看起来像第一个字典?
我的代码:
arr_users = []
def add_entry(id,name,age,country):
users = {}
data = { 'Name': name, 'Age': age, 'Country': country }
users[id] = data
arr_users.append(users)
add_entry(0, "Name1", 21, "Country1")
add_entry(1, "Name2", 22, "Country2")
add_entry(3, "Name3", 23, "Country3")
print(arr_users[0])
Run Code Online (Sandbox Code Playgroud)
您的代码正在生成一个字典列表。您似乎想要的是一个只包含一本字典的列表。所以:
def add_entry(id_, name, age, country, d):
d[id_] = { 'Name': name, 'Age': age, 'Country': country }
d = dict()
add_entry(0, "Name1", 21, "Country1", d)
add_entry(1, "Name2", 22, "Country2", d)
add_entry(3, "Name3", 23, "Country3", d)
arr_users = [d]
print(arr_users)
Run Code Online (Sandbox Code Playgroud)
输出:
[{0: {'Name': 'Name1', 'Age': 21, 'Country': 'Country1'}, 1: {'Name': 'Name2', 'Age': 22, 'Country': 'Country2'}, 3: {'Name': 'Name3', 'Age': 23, 'Country': 'Country3'}}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |