2016-03-20 2 views
0

У меня есть такой словарь:
d={1:[2,3,4],2:[1,3,4],3:[1,2],4:[1,2,3]}.Манипуляции Поиск Словарь со списком как значение в Python

Мне нужно сделать например: В key 1 У меня есть список [2,3,4]. Мне нужно подсчитать количество соединений между элементом списка как значение во всех ключах.

Так что я должен проверить, если в key 2 есть как элементы 3 или 4, а также key 3 с элементом 4.

Это исследование должно продолжаться для всего key словаря d.

В конце поиска во всех ключах мне пришлось подсчитать количество найденных пар. В примере у меня есть только count=2, потому что key 2 связан с 3 и 4, но 3 не подключен к 4. Повторения не требуются. Поэтому меня не интересует пара 4-2, если я уже нашел (и посчитал) пару 2-4. я пытался осуществить первый ключ:

` 
d={} 
d={1:[2,3,4],2:[1,3,4],3:[1,2],4:[1,2,3]} 
values=[] 
count = 0 
#for key in d: 
values = d[1] 
for value in values: 
    for i in (d[value]): 
     print "i: ",i 
     if i in values: 
      count += 1 
      print " count: ", count 
      print ".........." 

print(count) 
` 

Но, таким образом count=5, потому что рассчитывать также обращенные пары. Я должен указать что-то, поэтому count будет count=3. Как это можно сделать?

ответ

0
d={} 
d={1:[2,3,4],2:[1,3,4],3:[1,2],4:[1,2]} 
print d 
values=[] 
for key in d: 
    count = 0 
    values = d[key] 
    for value in values: 
     for i in (d[value]): 
      if i in values: 
       count += 1 
    print "count: ",count/2, " key: ", key 
Смежные вопросы