* 运算符如何在 python 中工作
How does * operator work in python
我知道它扩展了函数参数,但是如果我在 Python 2:
中尝试这样的事情
x = [1,2,3]
print *x # SyntaxError: invalid syntax
print [*x] # SyntaxError: invalid syntax
看来我遗漏了一些关于 * 到底做什么的东西?
*
运算符将 sequence/iterable 中的元素(例如,列表或元组)解包为函数
的位置参数
在 python2 上,print
是语句而不是函数。所以从 future 导入 print 函数,这样你就可以使用 *
运算符将列表元素解包为参数
>>> from __future__ import print_function
>>> print (*x)
1 2 3
在python3上,print
是函数。所以你可以直接使用 *
运算符
>>> print (*x)
1 2 3
我知道它扩展了函数参数,但是如果我在 Python 2:
中尝试这样的事情x = [1,2,3]
print *x # SyntaxError: invalid syntax
print [*x] # SyntaxError: invalid syntax
看来我遗漏了一些关于 * 到底做什么的东西?
*
运算符将 sequence/iterable 中的元素(例如,列表或元组)解包为函数
在 python2 上,print
是语句而不是函数。所以从 future 导入 print 函数,这样你就可以使用 *
运算符将列表元素解包为参数
>>> from __future__ import print_function
>>> print (*x)
1 2 3
在python3上,print
是函数。所以你可以直接使用 *
运算符
>>> print (*x)
1 2 3