2016-03-20 16 views
0

için değer olarak sözlükte arama Bu gibi bir sözlüğe sahibim:
d={1:[2,3,4],2:[1,3,4],3:[1,2],4:[1,2,3]}.Manipülasyon Python

Örneğin şunları yapmam gerekiyor: key 1 Listede [2,3,4] var. Tüm anahtarlarda listenin elemanı arasındaki bağlantı sayısını saymak zorundayım.

yüzden key 2 elemanların 3 veya 4 ve ayrıca elemanı 4 ile key 3 olarak varsa doğrulaması gerekir.

Bu araştırma, d sözlüğündeki key numaralı telefonun tümüne devam etmelidir.

Tüm anahtarlarda arama sonucunda bulunan çiftlerin sayısını saymak zorunda kaldım. Örnekte, key 23 ve 4 ile bağlı olduğu için count=2 var, ancak 34'a bağlı değil. Tekrarlar gerekli değildir. Bu yüzden zaten 2-4 çiftini bulsaydım (ve saydım) çift 4-2 ile ilgilenmiyorum. o da ters çiftler sayılmasıdır bu şekilde count=5 yılında,

` 
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) 
` 

Ama: Ben ilk anahtar için uygulamaya çalışmıştır. countcount=3 olacak bir şey belirtmek zorundayım. Bunu nasıl yapabilir?

cevap

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