Хотите повторить функцию 10 раз и взять среднее значение ее значения (python)

У меня есть функция с 4 аргументами, я хочу повторить эту функцию 10 раз и использовать этот счетчик в качестве аргумента для функции. вот функция, которую я хочу повторить:

np.random.seed(1)  
def  propagate ( seed ,  network ,  threshold ,  steps ): 
      "" "Start cascade from node` seed` of network `net`." "" 
      activated  =  [ seed ] 
      pocket  =  [ seed ] 
      exposition  =  {} 
      time  =  0 
      while  time  <  steps : 
          time  +=  1 
          # propagate 
          for  seed  in  pocket : 
              for  out_node  in  network . successors( seed ): 
                  add_weight  =  network [ seed ] [ out_node ] [ "weight" ] 
                  if  out_node  not  in  activated : 
                      if  out_node  in  exposition : 
                          exposition [ out_node ]  +=  add_weight 
                      else : 
                          exposition [ out_node ]  =  add_weight 
          # activate 
          pocket  =  [] 
          for  node ,  total  in  exposition .items (): 
              if  total  =  threshold : 
                  pocket . append ( node ) 
         activated  +=  pocket [:] 
         for  node  in  pocket : 
             del  exposition [ node ] 
     return  len ( activated )z

Я хочу выбрать 10 узлов, сеть представляет собой сохраненный граф, повторять (аргумент - шаги) его 5 раз, иметь пороговые значения от 1 до 5 и вычислять среднее количество активированных узлов. вот что я пробовал. это не так много, но я тоже не понимаю, как это должно работать.

act_nodes=[]  
for i in range(1,5):
    propagate(1,B,5,i)
    act_nodes.append(propagate)
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
236
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны добавить результат своей функции:

 act_nodes=[] 
 for i in range(1,5):
     x=propagate(1,B,5,i)
     act_nodes.append(x)

«активировано» объявлено внутри функции и не живет вне ее, что является ошибкой для. Кроме того, почему вы зацикливаетесь в диапазоне (1,5)? Это будет выполняться 4 раза, но вы сказали, что вам нужно 10?

Вот черт! не могли бы вы рассказать мне, что случилось с вами сделал x=? он сохранил вывод в x и добавил в список?

Chai 13.12.2020 12:08

@ Чай Да, точно

IoaTzimas 13.12.2020 12:09

Другие вопросы по теме