可能重复:
Python: Once and for all. What does the Star operator mean in Python?
x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
list(zipped)
x2, y2 = zip(*zip(x, y))
x == list(x2) and y == list(y2)
*zip(x, y)
返回什么类型的对象?为什么
res = *zip(x, y)
print(res)
不起作用?
答案 0 :(得分:4)
Python中的星号“operator”不返回对象;它是一个句法结构,意思是“用作为参数给出的列表来调用函数。”
所以:
x = [1,2,3]
F(* X)
相当于:
f(1,2,3)
博客条目(不是我的):http://www.technovelty.org/code/python/asterisk.html
答案 1 :(得分:0)
python中的*
运算符通常称为scatter,它对于将元组或列表分散为多个变量非常有用,因此通常用于输入参数。
http://en.wikibooks.org/wiki/Think_Python/Tuples
双星**
对字典执行相同的操作,对命名参数非常有用!
答案 2 :(得分:0)
*zip(x, y)
未返回类型,*
用于unpack arguments到函数,在您的情况下再次zip
。
x = [1, 2, 3]
和y = [4, 5, 6]
zip(x, y)
的结果为[(1, 4), (2, 5), (3, 6)]
。
这意味着zip(*zip(x, y))
与zip((1, 4), (2, 5), (3, 6))
相同,其结果变为[(1, 2, 3), (4, 5, 6)]
。