在以下情况下,我正在努力从字典中删除相同的键:
{('cat', 'tiger'): 18,
('tiger', 'cat'): 18,
('chines', 'gentleman'): 7,
('gentleman', 'chines'): 7}
在本例中,我将倒序('cat', 'tiger'): 18
和('tiger', 'cat'): 18
视为相同的键,并尝试创建如下所示的新字典
{('cat', 'tiger'): 18,
('gentleman', 'chines'): 7}
当我有一个类似于{(('cage', 'cat'), 5),(('cat', 'cage'), 5)}
的字典要合并或删除时,我尝试的是调整任何逆序大小写。你知道吗
你可以按照以下思路做一些事情:
在这种
dict
理解中,最后遇到的每一组“equal”键的值获胜。对于示例数据,这应该无关紧要,因为这些键具有equala值。请注意,这也只是对元组进行排序,而与原始dict
中实际出现的排序版本无关。你知道吗问题是使用
tuple
值作为键,但是tuple
对象是有序的,因此('a','b')
与('b','a')
不同。一个简单的解决方案?使用无序但可散列的容器,即冻结集可以工作:如果你不在乎这两项的顺序。。。与它们相关联的值总是相同的,最简单的可能是,假设您的起始字典名为
old_dict
:您只需遍历键/值对并将它们添加到
new_dict
。因为我们现在对键进行排序,然后将结果列表转换回tuple,所以我们确保任何重新出现的一对都会覆盖上一个条目。你知道吗相关问题 更多 >
编程相关推荐