我有一个dict包含大量条目的数据。我只对其中的几个感兴趣。有没有简单的方法可以删除所有其他条目?
是的,您可以使用字典推导式创建一个仅包含您感兴趣的键的新字典。以下是实现此目的的简洁而有效的方法:
假设您有以下词典:
original_dict = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4' }
并且您只想保留键为“key1”和“key3”的条目。您可以创建一个仅包含这些键的新字典:
keys_of_interest = ['key1', 'key3'] pruned_dict = {key: original_dict[key] for key in keys_of_interest if key in original_dict} print(pruned_dict)
keys_of_interest
if key in original_dict
original_dict
KeyError
original_dict = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4' } keys_of_interest = ['key1', 'key3'] # Pruning the dictionary pruned_dict = {key: original_dict[key] for key in keys_of_interest if key in original_dict} print(pruned_dict) # Output: {'key1': 'value1', 'key3': 'value3'}
dict
fromkeys
dict.fromkeys实现此目的的另一种方法是使用字典理解,特别是当您确定所有键都存在于原始字典中时:
dict.fromkeys
keys_of_interest = ['key1', 'key3'] pruned_dict = {key: original_dict[key] for key in dict.fromkeys(keys_of_interest)} print(pruned_dict)
此方法更紧凑一些,但假设 中的所有键都keys_of_interest存在于 中original_dict。如果任何键不存在,它将引发KeyError。
通过使用字典推导,您可以有效地修剪字典以仅包含您感兴趣的键。这种方法很简洁,并利用 Python 强大的推导功能来获得简洁的代码。