Недавно начал изучать Python для своих мат. вычислений, которые раньше делал в Excel. Начал переводить их в Python и столкнулся с тем, что не могу прописать в виде алгоритма то, что раньше делал самостоятельно даже не задумываясь. Знаний еще не хватает.
Суть дерева?
Это результаты 3-х раундных поединков между бойцами в смешанных единоборствах. В конце каждого раунда присуждается значение показывающий результат каждого раунда (от 1 до 7). Во второй части таблицы указаны сколько ударов они нанесли за этот раунд.
Что нужно сделать?
Создать цикл, который должен:
1. Прописывать значения всех результатов по раундам.
2. Прописывать их в порядке возрастания.
3. Считать и прописывать значения соответствующему сценарному дереву. Если деревья совпадают, то считать среднюю арифметическую.
P.S. Я смог придумать решение только для первого раунда. Использовал библиотеку Openpyxl. Возможно кто-то сможет предложить более простой способ построения дерева. Буду рад любому предложению.
#1 раунд v=[] for j in range(2,x3+1): if type(ws3.cell(2,j).value)==int: if ws3.cell(2,j).value in v: pass else: v.append(ws3.cell(2,j).value) else: pass for j in range(2,x3+1): if type(ws3.cell(15,j).value)==int: if ws3.cell(15,j).value in v: pass else: v.append(ws3.cell(15,j).value) else: pass def selection_sort(nums): # значение i соответствует тому, сколько значений было отсортировано for i in range(len(nums)): # Мы предполагаем, что первый элемент несортированного сегмента является наименьшим lowest_value_index = i # Этот цикл перебирает несортированные элементы for j in range(i + 1, len(nums)): if nums[j] < nums[lowest_value_index]: lowest_value_index = j # Поменять местами значения самого низкого несортированного элемента с первым несортированным nums[i], nums[lowest_value_index] = nums[lowest_value_index], nums[i] selection_sort(v) for i in range(len(v)): ws3.cell(33+i,1).value=v[i]