python ANOVA для переменного числа входных массивов

#python

Вопрос:

Я внедряю тест Крускалла-Уоллиса в scipy.stats.kruskal . Есть ли какой-то способ ввести входные аргументы для неизвестного количества входных данных?

Например, воспроизведение примеров из документов

 from scipy.stats import kruskal

# 2 input arrays
x1 = [1, 3, 5, 7, 9]
x2 = [2, 4, 6, 8, 10]
kruskal(x1, x2)
# KruskalResult(statistic=0.2727272727272734, pvalue=0.6015081344405895)

# 3 input arrays
x1 = [1, 1, 1]
x2 = [2, 2, 2]
x3 = [2, 2]
kruskal(x1, x2, x3)
# KruskalResult(statistic=7.0, pvalue=0.0301973834223185)
 

Но что, если я в первую очередь не знаю количество групп (входных массивов)? Я мог бы сделать что-то вроде следующего, но это кажется неэлегантным:

 input_list = [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]
if len(input_list) == 2:
    kresult = kruskal(input_list[0], input_list[1])
elif len(input_list) == 3:
    kresult = kruskal(input_list[0], input_list[1], input_list[2])
elif len(input_list) == 4:
    kresult = kruskal(input_list[0], input_list[1], input_list[2], input_list[3])
# and so on...
 

Ответ №1:

Вы можете использовать оператор распространения:

 kresult = kruskal(*input_list)