【发布时间】:2020-06-02 14:23:04
【问题描述】:
无论输入是list、numpy.array 还是pandas.Series,Python 中的以下函数都可以返回一个列表。
pythonic的写法是什么让输出类型和输入类型一致?
def foo(input):
output = []
output.append(input[0])
for i in range(1, len(input)-1):
if (some condition):
output.append(input[i])
output.append(input[-1])
return output
【问题讨论】:
-
应该已经有了?你能举一个这不起作用的例子吗?
-
最快的修复方法是
return type(input)(output),假设该类型实际上可以构造一个给定值列表的实例。如果没有,您必须了解input可以具有哪些类型,并将您的函数写入最低公分母,仅使用已知可与它们中的任何一个一起使用的函数。 -
@Raphael 无论输入是什么类型,该函数都会返回一个
list。 -
@chepner 哦,我假设输入也是一个列表。我以为他们的意思是输入和输出列表的元素应该是相同的类型。
标签: python pandas list numpy polymorphism