gpt4 book ai didi

python - 返回类型取决于 Python 中的输入类型

转载 作者:行者123 更新时间:2023-12-01 06:22:53 25 4
gpt4 key购买 nike

Python 中的以下函数可以返回一个列表,无论输入是 listnumpy.array 还是 pandas.Series >.

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

最佳答案

一般来说,如果不对输入内容做出大量假设,就无法做到这一点。

第一步是确保 output是正确的类型,而不是列表。

output = type(self)()

但是,这假设无论您的输入是什么类型,您都可以通过不带参数调用它来创建实例。

接下来,您必须将自己限制在 output 上的操作所有预期输入都支持。并非所有迭代都支持 append方法(例如 set 使用 add,而不是 append ),并且并非所有迭代都支持 __getitem__ (例如发电机)。这意味着您不能过多地概括您的函数;您必须始终牢记您将支持哪些类型的输入。

或者,如果您想要支持的类型集可以从列表创建实例,您可以让 output = []站立,但在返回之前将其转换:

return type(self)(output)

关于python - 返回类型取决于 Python 中的输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60283015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com