Передача в функцию переменные из массива циклом

Я пытаюсь рефакторить код. У меня есть одна функция которая часто дублируется и принимает несколько значений. Я создал цикл и не могу понять как мне преобразовать это в аргументы.

def mainFunc(x, x1, x2, x3 == 5):
    print('чето делаем')

def mainFuncMass(arr): 
    for attr in arr:
        #Если я буду передавать по ключу attr[0] attr[1] то если отсутствует ключ attr[3] 
        #выйдет ошибка. Это решается плохим кодом, чего мне делать не хочется.
        mainFunc(attr) # разное колво элементов

arr = [ [0, 1, 2, 3], [0, 3, 4, 8], [0, 1, 2] ] 
mainFuncMass(arr)

Как мне грамотно решить данную задачу? Хотелось бы научится делать качественный, читаемый код.


Ответы (1 шт):

Автор решения: CrazyElf

Можно "развернуть" список/массив в набор значений с помощью знака *:

mainFunc(*attr)

Ну и, конечно, нужно исправить описание функции, значение по умолчанию задаётся через один знак =, а не через два. == - это сравнение:

def mainFunc(x, x1, x2, x3 = 5):
→ Ссылка