擅长:python、mysql、java
<h2>|=运算符(Python3.9)</h2>
<p>我认为<a href="https://docs.python.org/3/library/stdtypes.html#typesmapping" rel="nofollow noreferrer">|=</a>操作符被称为<em>单管等于操作符</em>,您可以使用它来组合字典。这会将“右”和“右”中的所有条目添加到“左”中,作为平局断路器</p>
<pre><code>ids = {"XXXX1234": 43, "XXXX4547": 58, "YYYY4948": 93, "YYYY5050": 45}
updates = {"XXXX6666": 00, "YYYY5050": 99} # "YYYY5050" is duplicate
updates |= ids # pick right when duplicate key
print(updates)
</code></pre>
<p>输出:</p>
<pre><code>{'XXXX1234': 43, 'XXXX4547': 58, 'YYYY4948': 93, 'XXXX6666': 00, 'YYYY5050': 45}
</code></pre>
<p>通常像<code>len(updates)</code>这样的增量数据比像<code>len(ids)</code>这样的完整数据要短。以这种方式使用<code>|=</code>将每次复制所有<code>ids</code>,而不是复制所有<code>updates</code>如果被写为<code>ids |= updates</code></p>
<h2>唯一键</h2>
<p>正如其他人所指出的,您将需要唯一的密钥。这使用4位尾部作为解决方法:</p>
<pre><code>ids = {"XXXX1234": 43, "XXXX4547": 58, "YYYY4948": 93, "YYYY5050": 45}
new_ids = {key[-4:]: ids[key] for key in ids}
print(new_ids)
</code></pre>
<p>输出:</p>
<pre><code>{'1234': 43, '4547': 58, '4948': 93, '5050': 45}
</code></pre>