如何匹配封装在 python 列表中的两个字典的键?
How to match the keys of two dictionaries encapsulated within a list in python?
我有两个词典,它们在一个列表中。该列表如下所示 [{'10.1.1.0':[1], '10.1.1.1':[2]}, {'10.1.1.0':[3], '10.1.1.1':[4]}] .我需要的是相同的键,即匹配的 ips 我想要相应的数字或值。
- 所以样本输出看起来像这样 [{'10.1.1.0':[1], '10.1.1.0':[3]}, {'10.1.1.1':[2], '10.1.1.1 ':[4]}]
这可能吗?任何帮助都会非常有用。
Python 中的字典无法实现您尝试执行的操作。重复键 are not allowed。相反,您可以将相同的键映射到列表中的多个值:
x = [{'10.1.1.0': [1], '10.1.1.1': [2]}, {'10.1.1.0': [3], '10.1.1.1': [4]}]
new_dict = dict() # initialize a new dictionary
for d in x: # iterate over the original list of dictionaries
for k, v in d.items(): # get all the items in the current dictionary
if k in new_dict: # add the key and value, or add the value to a key
new_dict[k] += v
else:
new_dict[k] = v
print(new_dict)
输出:
{'10.1.1.0': [1, 3], '10.1.1.1': [2, 4]}
我有两个词典,它们在一个列表中。该列表如下所示 [{'10.1.1.0':[1], '10.1.1.1':[2]}, {'10.1.1.0':[3], '10.1.1.1':[4]}] .我需要的是相同的键,即匹配的 ips 我想要相应的数字或值。
- 所以样本输出看起来像这样 [{'10.1.1.0':[1], '10.1.1.0':[3]}, {'10.1.1.1':[2], '10.1.1.1 ':[4]}]
这可能吗?任何帮助都会非常有用。
Python 中的字典无法实现您尝试执行的操作。重复键 are not allowed。相反,您可以将相同的键映射到列表中的多个值:
x = [{'10.1.1.0': [1], '10.1.1.1': [2]}, {'10.1.1.0': [3], '10.1.1.1': [4]}]
new_dict = dict() # initialize a new dictionary
for d in x: # iterate over the original list of dictionaries
for k, v in d.items(): # get all the items in the current dictionary
if k in new_dict: # add the key and value, or add the value to a key
new_dict[k] += v
else:
new_dict[k] = v
print(new_dict)
输出:
{'10.1.1.0': [1, 3], '10.1.1.1': [2, 4]}