2012-02-26 78 views
2

pyshp模塊中的功能record()需要一個序列輸入:Python函數期望一個元組,我擁有的是一個列表。我如何調用這個函數?

outfile.record('First','Second','Third') 

我所擁有的是一個列表:

row = ['First','Second','Third'] 

當我打電話record()功能是這樣的:

outfile.record(row) 

我收到一個tuple index out of range錯誤。原來函數接收

(['First','Second','Third'],) 

如何正確調用record? 我試過了

outfile.record((row[i] for i in range(len(row))) 

但是這也行不通。

+0

這不是它期望的順序;這是幾個論點。 「序列」是列表,元組,字符串等的通用術語......即可迭代的東西,但仍然是單一的特定對象。 'outfile.record'希望你能通過不止一件事。 – 2012-02-26 08:55:05

回答

10
outfile.record(*row) 

這將解壓一個序列爲單個參數。這是一個formal description of this syntax from the language reference,這是一個informal description from the tutorial

注有一個類似的構建體,其將解包的映射(字典)插入關鍵字參數:

functiontakingkeywordarguments(**mydict) 
+0

謝謝!我搜索了python文檔,但找不到參考。我會在這裏預期它:http://docs.python.org/library/stdtypes.html – mvexel 2012-02-26 01:38:34

相關問題