将字典键值添加到另一个字典的所有键
Add dictionary key-values to all keys of another dictionary
我正在尝试将只有一个键的字典的值添加到另一个字典的所有键,但我的字典有不同的键。我想使用循环来执行此操作,因为我的原始字典有 100 多个键。
这里是字典的例子(dict2应该添加到dict1的每个键):
dict1 = {
'a': 3.84,
'b': 4.9,
'c': 6.7}
dict2={'value': {0: 1,
1: 6,
2: 10,
3: 2}}
为澄清起见,dict2 应该只有一个键 ('value')。 dict2 是从 csv 数据框创建的,我试图删除行索引但没有找到方法。
“最终”字典应具有 dict1 和 dict2 的值,但不包含 dict2 的“行索引”。最终字典应如下所示:
dict3 = {
'a': 3.84,
1,
6,
10,
2,
'b': 4.9,
1,
6,
10,
2,
'c': 6.7,
1,
6,
10,
2 }
我尝试了很多使用 append()、update() 的方法,但都没有用。我也尝试过将 dict2 用作数组,但它也没有用。
感谢您的帮助!
如果你想为每个 dict1 键创建一个列表,你可以使用这个:
dict2_values = dict2["value"].values()
dict3 = {k: [v, *dict2_values] for k, v in dict1.items()}
我们在这里使用了可迭代拆包的特殊语法
l1 = [1,2]
l2 = [3,4]
print([*l1, *l2, 5]) # [1,2,3,4,5]
您必须将 dict3 中每个键的值设为一个列表,因为一个键不能有多个值。这是一个可能的解决方案:
dict1 = {'a': 3.84, 'b': 4.9, 'c': 6.7}
dict2 = {'value': {0: 1, 1: 6, 2: 10, 3: 2}}
def dict_merge(dict1, dict2):
dict3 = {}
for key in dict1:
dict3[key] = [dict1[key]]
for key2 in dict2["value"]:
dict3[key].append(dict2["value"][key2])
return dict3
print(dict_merge(dict1, dict2))
输出:
{'a': [3.84, 1, 6, 10, 2], 'b': [4.9, 1, 6, 10, 2], 'c': [6.7, 1, 6, 10, 2]}
我正在尝试将只有一个键的字典的值添加到另一个字典的所有键,但我的字典有不同的键。我想使用循环来执行此操作,因为我的原始字典有 100 多个键。
这里是字典的例子(dict2应该添加到dict1的每个键):
dict1 = {
'a': 3.84,
'b': 4.9,
'c': 6.7}
dict2={'value': {0: 1,
1: 6,
2: 10,
3: 2}}
为澄清起见,dict2 应该只有一个键 ('value')。 dict2 是从 csv 数据框创建的,我试图删除行索引但没有找到方法。
“最终”字典应具有 dict1 和 dict2 的值,但不包含 dict2 的“行索引”。最终字典应如下所示:
dict3 = {
'a': 3.84,
1,
6,
10,
2,
'b': 4.9,
1,
6,
10,
2,
'c': 6.7,
1,
6,
10,
2 }
我尝试了很多使用 append()、update() 的方法,但都没有用。我也尝试过将 dict2 用作数组,但它也没有用。
感谢您的帮助!
如果你想为每个 dict1 键创建一个列表,你可以使用这个:
dict2_values = dict2["value"].values()
dict3 = {k: [v, *dict2_values] for k, v in dict1.items()}
我们在这里使用了可迭代拆包的特殊语法
l1 = [1,2]
l2 = [3,4]
print([*l1, *l2, 5]) # [1,2,3,4,5]
您必须将 dict3 中每个键的值设为一个列表,因为一个键不能有多个值。这是一个可能的解决方案:
dict1 = {'a': 3.84, 'b': 4.9, 'c': 6.7}
dict2 = {'value': {0: 1, 1: 6, 2: 10, 3: 2}}
def dict_merge(dict1, dict2):
dict3 = {}
for key in dict1:
dict3[key] = [dict1[key]]
for key2 in dict2["value"]:
dict3[key].append(dict2["value"][key2])
return dict3
print(dict_merge(dict1, dict2))
输出:
{'a': [3.84, 1, 6, 10, 2], 'b': [4.9, 1, 6, 10, 2], 'c': [6.7, 1, 6, 10, 2]}