在Python中,* zip(list1,list2)返回什么类型的对象?
可能重复:
Python:一劳永逸。 Star运算符在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)
不起作用?
Python中的星号“运算符”不返回对象; 这是一个句法结构,意思是“用给出的列表作为参数来调用函数”。
所以:
x = [1,2,3]
F(* x)的
相当于:
f(1,2,3)
博客条目(不是我的):http://www.technovelty.org/code/python/asterisk.html
python中的*
运算符通常称为散布(scatter),它将元组或列表分散到许多变量中非常有用,因此通常用于输入参数。 http://en.wikibooks.org/wiki/Think_Python/Tuples
双星**
在字典上执行相同的操作,对命名参数非常有用!
*zip(x, y)
不返回一个类型, *
用于将参数解压缩到一个函数中,在你的情况下再次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)]
。
上一篇: In Python what type of object does *zip(list1, list2) return?