我想找出两个词典列表之间的区别。你知道吗
我使用的是python3.5,我想知道获取集之间差异的最佳方法。我知道set操作,但我不确定在我目前的情况下这是否是实现它们的最佳方法。你知道吗
以下是我现在拥有的:
orig = set()
chng = set()
original = [{"name": "Tom Pety", "name_id": 1}, {"name": "Tom Cruz", "name_id": 2}]
changed = [{"name": "Tom Petty"}, {"name": "Tom Cruise"}]
for item in original:
orig.update(item.values())
for item in changed:
chng.update(item.values())
diffs = orig - chng
我的电流输出是{'Tom Pety', 1, 2, 'Tom Cruz'}
。你知道吗
最终,我希望得到的结果如下所示,以便更改的值与其id相关联:
[{"name": "Tom Petty", "name_id": 1}, {"name": "Tom Cruise", "name_id": 2}]
最好的方法是什么?你知道吗
如果列表具有相同的顺序(这意味着
changed
的第一项必须应用于original
的第一项,等等),那么我们可以使用zip
来同时迭代列表,并使用dict.update
函数来同时更新这些列表。比如:在此之后,
orig
列表将包含一个包含字典的列表:请注意,我们更新词典,而不是构造新词典。例如,如果我们需要创建新的,我们可以使用以下方法:
字典的这种语法在PEP-448中介绍过,在python-2.x和python-3.x到(但没有)3.5中不支持。你知道吗
相关问题 更多 >
编程相关推荐