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)))
但这也不起作用。
答案 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