def sum1(*a): return(sum(i*i for i in a)) def sum2(a): return(sum(i*i for i in a)) a=[1,2,3] print(sum1(*a), sum2(a)) #################################### showed above: the result from sum1() and sum2() is the same. So, what is the difference between f(a) and f(*a)