我有很多坐标,为此我创建了一个大字典,每个键可能有相同的值列表。我想将这些键与相同的值列表合并,以获得给定值列表中有多少键的计数。我已经设法合并了它们,但是由于某些原因,有些值被颠倒了,因此没有正确地合并。你知道吗
到目前为止,我已经尝试创建一个新字典,将合并的键作为元组,并将值作为列表保留。此外,我只保留那些有两个或更多键的值列表。你知道吗
我的入门词典
start_dict = {
'Key1': [243928620, 243938319],
'Key2': [243935130, 243935973],
'Key3': [243928620, 243938319],
'Key4': [243928628, 243938315],
'Key5': [243928628, 243938315],
'Key6': [243930418, 243933130, 243933141]
}
其中键1和3的值列表相同,键4和5的值列表相同。 所以我用
from collections import defaultdict
New_dict= defaultdict(list)
for k, v in sorted(start_dict.items()):
New_dict[tuple(v)].append(k)
final_dict = {tuple(v):set(k) for k, v in New_dict.items()}
预期结果是
{(‘Key1’,’Key2’): {243928620, 243938319}, (‘Key4’,’Key5’): {243928628, 243938315}}
但由于某种原因,它最终成为
{(‘Key1’,’Key2’): {243928620, 243938319}, (‘Key4’,’Key5’): {243938315,243928628}}
其中一个列表中的值被切换,这是一个问题,因为坐标的顺序很重要。你知道吗
当然,实际的数据集更大,合并可以处理49/50的键和值对列表。你知道吗
谢谢你的时间和建议。你知道吗
使用中间字典的想法是正确的,但是这个字典的键应该是原始字典的值:
不需要使用
set
,因为我们不关心列表本身中值的唯一性。你知道吗输出:
相关问题 更多 >
编程相关推荐