Python - удаление пропорции / процента словарных пар - PullRequest
0 голосов
/ 23 июня 2018

Я пытаюсь создать инструмент, который сможет выделять узлы социальных сетей с наивысшей промежуточностью. Я вычисляю эту меру для всех сетевых узлов в словаре, сортирую этот словарь по порядку, а затем сохраняю только 3 верхние пары.

Я хочу, чтобы этот инструмент был масштабируемым, поэтому вместо трех верхних пар я хочу сказать, что верхние 10% пар. Я новичок в Python, и не смог найти, как это сделать. Пожалуйста, найдите мой код ниже, с числом узлов для удаления, указанным [: 3]).

G = nx.Graph('data')
betweenness = dict(nx.betweenness_centrality(G))
import operator
betweenness_dict = dict(sorted(betweenness.items(), key=operator.itemgetter(1), reverse=True)[:3])

По сути, я хочу, чтобы [: 3] стал [: 10%]. Любая помощь будет оценена.

1 Ответ

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

Вы можете просто рассчитать 10% длины вашего словаря.Затем введите это в свой синтаксис списка.Имеется словарь d:

from operator import itemgetter

n = int(len(d) * 0.10)  # floor float result, as you must use an integer
res = dict(sorted(d.items(), key=itemgetter(1), reverse=True)[:n])
...