как вы говорите Networkx, что, учитывая атрибут, выбрать другой?Точнее, у меня есть следующие данные:
Final_s1 = G.node[node]['s1']
Initial_s1 = G.node['a']['s1']
Final_s2 = G.node[node]['s2']
Initial_s2 = G.node['a']['s2']
Я выполняю несколько простых вычислений
Perf_s1 = (Final_s1 - Initial_s1)/Initial_s1
Perf_s2 = (Final_s2 - Initial_s2)/Initial_s2
Я хотел бы посмотреть, есть ли способ пропустить следующие две строки:
G.node[node]['Perf_s1'] = Perf_s1
G.node[node]['Perf_s2'] = Perf_s2
Далее я нахожу минимум между обоими «выступлениями»:
min_node = min(['Perf_s1', 'Perf_s2'], key=lambda x: G.node[node][x])
В этой последней части я хочу научиться программировать лучше.Это работает, но необходимость добавления двух дополнительных атрибутов и оператора if-else выглядит не лучшим образом.
if min_node == 'Perf_s1':
Initial_Worst = G.node['a']['s1']
Final_Worst = G.node[node]['s1']
G.node[node]['value'] = Initial_Worst * Final_Worst
else:
Initial_Worst = G.node['a']['s2']
Final_Worst = G.node[node]['s2']
G.node[node]['value'] = Initial_Worst*Final_Worst
Спасибо!