У меня есть много координат, для которых я создал большой словарь, для которого отдельные ключи могут иметь одинаковый список значений.Я хочу объединить эти ключи с одним и тем же списком значений, чтобы подсчитать, сколько ключей имеют данный список значений.Мне удалось объединить их, но по какой-то причине некоторые значения поменялись местами и поэтому не были правильно объединены.
До сих пор я пытался создать новый словарь с объединенными ключами в качестве кортежа и сохранилзначения в виде списка.Кроме того, я сохраняю только тот список значений, в котором есть два или более ключей.
Мой стартовый словарь
start_dict = {
'Key1': [243928620, 243938319],
'Key2': [243935130, 243935973],
'Key3': [243928620, 243938319],
'Key4': [243928628, 243938315],
'Key5': [243928628, 243938315],
'Key6': [243930418, 243933130, 243933141]
}
Для которых Ключи 1 и 3 имеют одинаковый список значений, одинаковый для Key4 & 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 ключей и списка пар значений.
Спасибо за ваше время и предложения.