回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在使用<code>python</code>词典,我想把它们结合起来。这些格言如下:</p>
<pre><code>devices = [{'EUI':123,'Name':'gum 1'},{'EUI':456,'Name':'gum 2'},{'EUI':789,'Name':'gum 3'}]
data = [{'EUI':123,'data':111},{'EUI':456,'data':222},{'EUI':789,'data':333},{'EUI':456,'data':444},{'EUI':789,'data':555}]
</code></pre>
<p>它们的共同点是<code>EUI</code>(标识符)。我正在做的是使用一对循环并检查<code>EUI</code>是否相同。如果是相同的,我结合两个dict</p>
<p>最终的结果是,</p>
<pre><code>[{'EUI': 123, 'data': 111, 'Name': 'gum 1'}, {'EUI': 456, 'data': 222, 'Name': 'gum 2'}, {'EUI': 789, 'data': 333, 'Name': 'gum 3'}, {'EUI': 456, 'data': 444, 'Name': 'gum 2'}, {'EUI': 789, 'data': 555, 'Name': 'gum 3'}]
</code></pre>
<p>我的完整代码如下:</p>
<pre><code>devices = [{'EUI':123,'Name':'gum 1'},{'EUI':456,'Name':'gum 2'},{'EUI':789,'Name':'gum 3'}]
data = [{'EUI':123,'data':111},{'EUI':456,'data':222},{'EUI':789,'data':333},{'EUI':456,'data':444},{'EUI':789,'data':555}]
print(data)
for da in data:
for dev in devices:
if dev['EUI'] == da['EUI']:
da.update(dev)
break
print(data)
</code></pre>
<p>实际上,它工作得很好,但我认为它可能是一个更好的/更容易的/类似于pythonic的选项。有人知道另一种方法吗</p>
<p>多谢各位</p>