AJAY P
AJAY P

Reputation: 27

what is the use of * in print(*a) where 'a' is a list in python

I am a python newbie. I saw a code which had * inside a print function // print(*a) // in which 'a' was a list. I know * is multiplication operator in python, but don't know what's it in a list

Upvotes: 1

Views: 2467

Answers (2)

Maria Irudaya Regilan J
Maria Irudaya Regilan J

Reputation: 1475

(If you don't know about the variable number of argument methods, leave this topic and learn this after that)

Unpacking elements in list

Consider new_list = [1, 2, 3]. Now assume you have a function called addNum(*arguments) that expects 'n' number of arguments at different instances.

case 1: Consider calling our function with one parameter in the list. How will you call it? Will you do it by addNum(new_list[0])?

Cool! No problem.

case 2: Now consider calling our function with two parameters in the list. How will you call it? Will you do it by addNum(new_list[0], new_list[1])?

Seems tricky!!

Case 3: Now consider calling our function with all three parameters in the list. Will you call it by addNum(new_list[0], new_list[1], new_list[2])? Instead what if you can split the values like this with an operator?

Yes! addNum(new_list[0], new_list[1], new_list[2]) <=> addNum(*new_list)

Similarly, addNum(new_list[0], new_list[1]) <=> addNum(*new_list[:2])

Also, addNum(new_list[0]) <=> addNum(*new_list[:1])

By using this operator, you could achieve this!!

Upvotes: 1

Lubdhak
Lubdhak

Reputation: 116

It'd print all items without the need of looping over the list. The * operator used here unpacks all items from the list.

a = [1,2,3]

print(a) 
# [1,2,3] 

print(*a) 
# 1 2 3

print(*a,sep=",")
# 1,2,3

Upvotes: 1

Related Questions