【发布时间】:2018-08-26 16:47:29
【问题描述】:
在 Python 中有两个字典,并希望使用键进行连接。
第一个字典“d”是这样的 OrderedDict:
[OrderedDict([
('id', '1'),
('date', '20170101'),
OrderedDict([
('id', '2'),
('date', '20170102'),
OrderedDict([
('id', '3'),
('date', '20170102')]
第二个“dd”是defaultdict,是这样的:
defaultdict(int, {'1': 14, '2': 5, '3': 7})
我想使用“运算符”库的可能性和使用键进行连接,但该方法对我不起作用,因为我不知道应该如何处理 defaultdict 中的键:
sort_key = operator.itemgetter("id")
ks=[ k for k in dd.keys()]
for i, j in zip(sorted(d, key=sort_key), sorted(dd,key=ks)):
i.update(j)
我应该如何正确执行加入?
理想的输出将是 OrderedDict 以及来自第二个字典的附加值:
[OrderedDict([
('id', '1'),
('date', '20170101'),
('quantity', '14'),
OrderedDict([
('id', '2'),
('date', '20170102'),
('quantity', '5'),
OrderedDict([
('id', '3'),
('date', '20170102'),
('quantity', '7')]
谢谢!
【问题讨论】:
-
加入后它们会是什么样子?如果您创建一个Minimal, Complete, and Verifiable 示例,您将获得更多更好的答案。尤其要确保输入和预期的测试数据是完整的(不是伪数据),并且可以很容易地剪切和粘贴到编辑器中,以便测试建议的解决方案。
-
您可能应该使用更好的数据格式。如果
ids 是唯一的,则将 OrderedDicts 放入字典中。
标签: python dictionary ordereddictionary defaultdict