Below is what I tested on IPython. The result of print(*(a,a)) is what I expected but not print(*(a)). I though print(*(a)) would give [1,2]. The background is that I have some function taking a list as an argument and this "unexpected" unpacking behavior caused errors of mismatch in argument numbers. I can work around it by using ([a]) as shown by the last print command. However, I think this inconsistent unpacking behavior is very unpythonic. Can someone explain it? Thanks.
In [82]: a=[1,2]
In [83]: print(*(a))
1 2
In [84]: print(*(a,a))
[1, 2] [1, 2]
In [85]: print (*([a]))
[1, 2]