擅长:python、mysql、java
<p>这里有一个技巧,作为一个经验法则,<em>如果可能的话,你应该避免技巧</p>
<pre><code>new_dict_list = [
{
'new_key1': old_dict['old_key_1'],
'new_key3': old_dict['old_key_3'],
**({} if old_dict['old_key_2'].endswith("b") else {'new_key2': old_dict['old_key_2']})
}
for old_dict in old_dict_list
]
print(new_dict_list)
# [{'new_key1': 'value1a', 'new_key3': 'value3a', 'new_key2': 'value2a'}, {'new_key1': 'value1b', 'new_key3': 'value3b'}]
</code></pre>
<p>我使用了<code>**</code>操作符来解压dict。如果满足条件,则此dict为<code>{}</code>,如果不满足条件,则为<code>{'new_key2': old_dict['old_key_2']}</code>。因此,仅当不满足条件时才创建键<code>new_key2</code></p>
<p>在本例中,条件为<code>old_dict['old_key_2'].endswith("b")</code>,但您可以在<code>old_dict</code>上设置任何其他条件</p>