Параллельное выполнение по значениям в списке
import random
import numpy as np
import time
while True:
l_gen = [[['a',random.randint(1, 10)],['b',random.randint(1, 11)],['c',random.randint(1, 12)]]
,[['d',random.randint(1, 10)],['e',random.randint(1, 11)],['f',random.randint(1, 12)]]
,[['j',random.randint(1, 10)],['k',random.randint(1, 11)],['l',random.randint(1, 12)]]
]
l_type_count_1 = []
l_type_count_2 = []
for g,er in enumerate(l_gen):
l_one_element = [a[0] for a in er] # a , b ,c
#print(l_one_element[g])
l_comb = []
l_comb.append(l_one_element)
z = 0
while z < 2:
my_list = np.roll(l_comb[z], 1).tolist()
l_comb.append(my_list)
z += 1
# тип расчётов 1
#print(l_comb)
for a in l_comb: # [['a', 'b', 'c'], ['c', 'a', 'b'], ['b', 'c', 'a']]
one_value = [b[1] for i,b in enumerate(er) if a[0] == b[0]][0]
two_value = [b[1] for i, b in enumerate(er) if a[1] == b[0]][0]
three_value = [b[1] for i, b in enumerate(er) if a[2] == b[0]][0]
l_type_count_1.append([str(a)+' type_1',(1/one_value) * two_value * three_value])
# тип расчётов 2
for a in l_comb: # [['a', 'b', 'c'], ['c', 'a', 'b'], ['b', 'c', 'a']]
one_value = [b[1] for i, b in enumerate(er) if a[0] == b[0]][0] # ограничил l_gen a b c
two_value = [b[1] for i, b in enumerate(er) if a[1] == b[0]][0] # ограничил l_gen a b c
three_value = [b[1] for i, b in enumerate(er) if a[2] == b[0]][0] # ограничил l_gen a b c
l_type_count_2.append([str(a)+' type_2',(1/one_value) * (1/two_value) * three_value])
print(l_type_count_1)
print(l_type_count_2)
time.sleep(2)
Добрый день! Не понимаю, как сделать параллельное выполнение по значениям в списке l_gen.
Под параллельным выполнением я понимаю следующее: на каждую итерацию "for g,er in enumerate(l_gen):"
создать отдельную задачу для async. Погуглив, я нашёл примеры использования async для отправки get запросов, а вот аналогичный пример как у меня- "не последовательное выполнение" нет.
Из l_type_count_1 и l_type_count_2 буду доставать два наибольших значения с названием.
Помогите, пожалуйста, советом...
Источник: Stack Overflow на русском