Python函数需要一个元组,我所拥有的是一个列表。我该如何调用此功能?

时间:2012-02-26 01:20:29

标签: python list tuples

pyshp模块中的函数record()需要一个序列作为输入:

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)))

但这也不起作用。

2 个答案:

答案 0 :(得分:11)

outfile.record(*row)

这会将序列解压缩到单个参数中。这是formal description of this syntax from the language reference,这是informal description from the tutorial

请注意,有一个类似的构造将map(dict)解包为关键字参数:

functiontakingkeywordarguments(**mydict)

答案 1 :(得分:7)

outfile.record(*row)

这种情况下的*表示“解包”。它会将列表解压缩为一系列参数。

http://docs.python.org/tutorial/controlflow.html#unpacking-argument-lists