У меня есть словарь, как это:Элементов Словаря множеств в питоне
dict1 = {0: set([1, 4, 5]), 1: set([2, 6]), 2: set([3]), 3: set([0]), 4: set([1]), 5: set([2]), 6: set([])}
и из этого словаря я хочу построить еще один словарь, сосчитать вхождение ключей в dict1 в любом другом значении, которое является результаты должны быть:
result_dict = {0: 1, 1: 2, 2: 2, 3: 1, 4: 1, 5: 1, 6: 1}
Мой код был такой:
dict1 = {0: set([1, 4, 5]), 1: set([2, 6]), 2: set([3]), 3: set([0]), 4: set([1]), 5:set([2]), 6: set([])}
result_dict = {}
for pair in dict1.keys():
temp_dict = list(dict1.keys())
del temp_dict[pair]
count = 0
for other_pairs in temp_dict :
if pair in dict1[other_pairs]:
count = count + 1
result_dict[pair] = count
проблема с этим кодом является то, что он очень медленный с большим набором данных. Другая попытка была в одной строке, например:
result_dict = dict((key ,dict1.values().count(key)) for key in dict1.keys())
, но это дает мне неправильные результаты, так как значения dict1 наборы:
{0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
Большое спасибо заранее
Этот код не запускается. 'dict1: {0: ...' недействителен синтаксис python. –