У меня есть следующие два массивных словарей:быстрый способ для сравнения [1:] элементы значения в 2 Словаре списков
Dic1={0:['F','15','O+','5'],1:['M','12','O+'],2:[F,'20','O-'],3:['F','10','A+'],4:['M','45','?']...}
Dic2={0:['M','15','O+','5'],1:['M','12','O+'],2:[F,'20','A-'],3:['F','10','A+'],4:['F','15','?'],5:['M','10','A+']...}
и мне нужно, чтобы сравнить и найти V [1:] которые равны в обоих словарях, чтобы объединить их только в одном словаре и удалить значение из другого.
Новый Dic1:
Dic1={0:['F,M','15','O+','5'],1:['2M','12','O+'],2:[F,'20','O-'],3:['2F,M','10','A+'],4:['M','45','?']...}
Новый Dic2:
Dic2={2:[F,'20','A-'],4:['F','15','?'],...}
Идея, которую я до сих пор:
for ((key1, value1), (key2, value2)) in zip(Dic1.items(), Dic2.items()):
if value1[1:]==value2[1:]:
value1.append(value2[:1])
del Dic1[Value2]
Но у меня есть проблемы с ним, и так как словари очень большой Мне нужен эффективный во времени способ, я думал о наборе, но я не знаю, как его использовать.
Почему это нулевое индексирование 'dict()' вместо простого списка списков? Я не вижу большой разницы ... – Will
Причина в том, что словари были сделаны из более сложной базы данных, и похоже, что итерация в словаре быстрее. – user3671704