Python - удаление пропорции / процента словарных пар

1

Я пытаюсь создать инструмент, который может выделять узлы социальных сетей с наивысшей центрированностью между центрами. Я вычисляю эту меру для всех сетевых узлов в словаре, сортирую этот словарь по порядку, а затем сохраняю только верхние 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%]. Любая помощь будет оценена по достоинству.

Теги:
list
dictionary
percentage
nodes

1 ответ

3
Лучший ответ

Вы можете просто рассчитать 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])
  • 1
    Спасибо, очень быстрый ответ и код работает отлично.
  • 1
    @LaurieBamber Тогда выберите правильный ответ :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню