我需要比较两个不同字典中项目的值。 假设字典RawData有表示电话号码和号码名称的项。你知道吗
例如,Rawdata有如下项:{'name': 'Customer Service', 'number': '123987546'} {'name': 'Switchboard', 'number': '48621364'}
现在,我得到了dictionary FilteredData,它已经包含了RawData中的一些项:{'name': 'IT-support', 'number': '32136994'} {'name': 'Company Customer Service', 'number': '123987546'}
如您所见,Customer Service和Company Customer Service都有相同的值,但键不同。在我的项目中,可能有数百个类似的重复项,我们只希望FilteredData中有唯一的数字。你知道吗
FilteredData是我们稍后将在代码中使用的,RawData将被丢弃。你知道吗
它们的名称(键)可以是完全重复的,但不能是数字(值)**
有两种方法可以做到这一点。你知道吗
A。删除RawData中的重复项,然后将其附加到FilteredData中。你知道吗
B。将它们附加到FilteredData中,然后遍历那里的数字(值),删除重复项。我能用一套吗?很明显,它会在一个列表上起作用。你知道吗
我不是在寻找最省时的解决方案。如果将来有人接替我的工作,我想要最简单易学的。在我的项目中,下一个编写代码的人必须快速掌握它。你知道吗
我已经看过了集合,并试图通过嵌套两个for循环来解决这个问题,但是有些东西告诉我应该有一个更简单的方法。你知道吗
当然,我可能错过了显而易见的解决办法。你知道吗
提前谢谢!你知道吗
如果您想更改过滤器数据当前的状态,可以使用
dict
并使用number
作为键:您可以使用
.values()
从映射中提取实际列表您可以做的是取一个
dict.values()
,创建一个set
来删除重复项,然后遍历旧字典,找到第一个具有该值的键并将其添加到新字典中。保留集合,因为当您获得下一个dict条目时,请尝试将元素添加到该集合中,并查看集合的长度是否比添加之前的长度长。如果是,它是一个独特的元素,您可以将其添加到dict中希望我能理解你的问题:
输出:
相关问题 更多 >
编程相关推荐