2012-03-17 30 views

回答

4

Python中的星號「運算符」不返回對象;這是一個句法結構,意思是「用給出的列表作爲參數來調用函數」。

所以:

X = [1,2,3]
F(* X)

相當於:

F(1,2,3)

關於這個(不是我的)的博客條目:http://www.technovelty.org/code/python/asterisk.html

+0

Python文檔在此上下文中調用'*'作爲操作符,但這有點誤導;直覺上,操作符應該返回一個對象,但這實際上是一個語法結構。 – Christophe 2012-03-18 19:18:47

0

*運算符在Python中通常被稱爲scatter,它是用用於將元組或列表分散到多個變量中,因此通常用於輸入參數。 http://en.wikibooks.org/wiki/Think_Python/Tuples

雙星**在字典上做了相同的操作,對命名參數非常有用!

0

*zip(x, y)不返回一個類型,*用於unpack arguments一個函數,在你的情況下再次zip

With x = [1, 2, 3] and 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)]

相關問題