Как я получаю стоимость словаря, который содержит другой dicccionario в Пайтоне?

У меня есть этот словарь, однако не, как получать ключи например:

G = {'a':{'b':3, 'c':4},
     'b':{'a':3, 'c':5},
     'c':{'a':4,'b':5},
   }

получать: k ={a,b,c} v ={(3,4),(3,5),(4,5)}

0
задан 13.03.2017, 20:07
1 ответ

если я понял bién твою проблему, то, что ты в действительности хочешь, состоит в том, чтобы группировать укрытые словари, Существуют большие способы это делать, возможный soluci¦n состоит в том, чтобы группировать их в словаре используя collections.defaultdict :

from collections import defaultdict

G = {'a':{'b':3, 'c':4},
     'b':{'a':3, 'c':5},
     'c':{'a':4,'b':5}}

#Instanciamos un defaultdict que tendrá una lista como valor en todos los casos.
result = defaultdict(list)

#recorremos nuestro diccionario y vamos agrupando por clave los distintos valores de cada diccionario anidado.
for d in G.values():
    for k,v in d.items():
        result[k].append(v)

#Podemos imprimir el diccionario, obtener sus claves         
k = list(result.keys())
v = list(result.values())
print('Diccionario agrupado:', dict(result))
print('Lista de claves:', k)
print('Lista de valores:', v)


#También podemos construir las listas k y v iterando sobre el diccionario
#Por ejemplo de la siguiente forma nos las da ordenadas según la clave
k, v = list(), list()
for key, value in sorted(result.items()):
    k.append(key)
    v.append(value)
print('Lista de claves ordenadas:', k)
print('Lista de valores ordenados por clave:', v)

Это дает нам вывод:

группируемый Словарь: { {b': [5, 3], 'c': [5, 4], 'в': [3, 4] }
Заносит в список ключей: ['b', 'c', 'в']
Заносит в список стоимости: [[5, 3], [5, 4], [3, 4]]
Заносит в список аккуратных ключей: ['в', 'b', 'c']
Заносит в список стоимости, упорядоченной ключом: [[3, 4], [5, 3], [5, 4]]

ты не определяешь versi¦n Пайтона, c¦digo - vÃ: lido для Пайтона 3.x, если ты используешь Пайтон 2.x и у тебя есть проблемы, чтобы это приспосабливать прокомментируй это.

1
ответ дан 24.11.2019, 10:37

Теги

Похожие вопросы