gpt4 book ai didi

python - 如何从 *args 返回多个值?

转载 作者:太空狗 更新时间:2023-10-30 00:37:08 24 4
gpt4 key购买 nike

我有一个 hello 函数,它有 n 个参数(见下面的代码)。

def hello(*args):
# return values

我想从 *args 返回多个值。怎么做?例如:

d, e, f = hello(a, b, c)

解决方案:

def hello(*args):
values = {} # values
rst = [] # result
for arg in args:
rst.append(values[arg])
return rst

a, b, c = hello('d', 'e', f)
a, b = hello('d', 'f')

只返回列表。 :) :D

最佳答案

因此,您想要返回一个与 args 具有相同长度的新元组(即 len(args)),并且其值是从 args[0]、args[1] 等计算得出的。请注意,您不能直接修改“args”,例如你不能分配 args[0] = xxx,这是非法的,会引发 TypeError: 'tuple' object does not support item assignment。然后你需要做的是返回一个长度与 len(args) 相同的 new 元组。例如,如果您希望您的函数为每个参数加一,您可以这样做:

def plus_one(*args):
return tuple(arg + 1 for arg in args)

或者以更详细的方式:

def plus_one(*args):
result = []
for arg in args: result.append(arg + 1)
return tuple(result)

然后,做:

d, e, f = plus_one(1, 2, 3)

将返回一个值为 2、3 和 4 的 3 元素元组。

该函数适用于任意数量的参数。

关于python - 如何从 *args 返回多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381739/

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