Python - разделить список диктов на отдельные. - PullRequest
0 голосов
/ 25 июня 2018

Я использую алгоритм HITS для анализа социальных сетей. Использование этого алгоритма приводит к двум различным показателям: оценка за концентрацию и оценка за авторитетность. На основе этих метрик создается список, содержащий два словаря, один из которых имеет индекс 0, а другой - 1.

Как удалить общий список, чтобы получить два отдельных словаря? Код и вывод выглядит следующим образом:

G = nx.read_weighted_edgelist('data.csv', create_using=nx.DiGraph())
HITS_scores = list(nx.hits(G))

Output:
List = Index     Type      Value
       0         dict      {'node1': 0.023, 'node3': 0.017.....'node17': 0.045}
       1         dict      {'node2': 0.042, 'node4': 0.002.....'node16': 0.032}

Desired Output:
hub_score =      dict      {'node1': 0.023, 'node3': 0.017.....'node17': 0.045}
auth_score =     dict      {'node2': 0.042, 'node4': 0.002.....'node16': 0.032}

Любая помощь будет оценена.

PS Я пытался найти ответ, но не смог найти решение

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Как насчет:

hub_score = HITS_scores[0]
auth_score = HITS_scores[1]

Вы могли бы также не генерировать список в первую очередь, написав list(nx.hits(G)), но вместо этого обработать ваши данные другим способом.

0 голосов
/ 25 июня 2018

Ответ, предоставленный гилчем, должен помочь. Однако, если вы застряли со списком, вы можете вытащить отдельные записи dict и назначить их следующим образом:

hub_score = HITS_scores[0]
auth_score = HITS_scores[1]
0 голосов
/ 25 июня 2018

Вы можете распаковать итерации с назначением в список целей, как это

hub_score, auth_score = nx.hits(G)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...