#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)