# How do I let a function accept a variable number of lists:

scott smarsh at hotmail.com
Tue May 29 20:40:22 EDT 2001

```I'm trying out the (very nice) stats module from
http://www.nmr.mgh.harvard.edu/Neural_Systems_Group/gary/python.html
I'm using Win NT4 and  Python 2.0:

----------------------------------------
import pstat, stats

def DoAnova():
''' A command line interface to calculate one-way ANOVA. '''
numPoints = input('How many data points in each group? ')
numGroups = input('How many groups are there (2 minimum)? ')
li = [0]
for i in range(numGroups - 1):
li.append(0)
for i in range(numGroups):
li[i] = [0]*numPoints
for group in range(numGroups):
for point in range(numPoints):
li[group][point] = input('Enter a data point: ')
print li

x = stats.F_oneway(li[0], li[1])
print x

DoAnova()
---------------------------------------

Problem:
The above works properly for 2 lists ONLY. e.g.: [1,2], [3,4]
It returns:
[[1, 2], [3, 4]]
(8.0, 0.10557280898846583)

The problem is this line:
x = stats.F_oneway(li[0], li[1])

I've just set it to accept the first two lists.
The docstring for lF_oneway includes:
"Usage:   F_oneway(*lists)   where *lists is any number of lists, one
per treatment group"

Question:
How do I automatically pass the correct number of lists to
stats.F_oneway()?

If I could turn the list of lists into a series of lists i.e:
li = [[1, 2], [3, 4], [5,6]] --> li = [1,2], [3,4], [5,6]]
then I could presumably just pass li.