如何在不使用 return 语句的情况下 return 一个值?

How do I return a value without using the return statement?

今天我在浏览编程挑战网站,看到一个非常简单的挑战,其中规定用户应该尝试使用尽可能少的字符来解决它。

挑战在于将两个数组相互合并。 例如: ['A','B','C']['D','E','F'] 会变成 ['A', 'B', 'C', 'D', 'E', 'F']

挑战表明用户需要使用此打开代码:

def mergeArrays(a, b):

长度为20个字符。自然地,我认为 return 答案的最简单和最短的方法是使用直截了当的方法:return a+b

得到完整代码为:

def mergeArrays(a, b):
    return a+b

一共29个字。但是,我注意到很多人用更少的字符解决了这个问题。有些甚至只有 24 个字符。仅比所需的起始代码长 4 个字符。一个 return 如何用比 return 更少的字符表示一个值?谁能解释一下有人是如何缩短这个答案的?

虽然如果您使用 1 个字母的函数名称可以缩短它的长度,但它与进入 Python 时一样短,无需编写您自己的 C 扩展或覆盖您的变量。

如果你想用更短的东西解决它,考虑另一种语言。使用 Ruby,您可以获得 23 个字符,因为有一个隐含的 return:

def m(a, b)
    a + b
end

还有其他语言,例如 Golfscript that can accomplish the same thing. Or you could get into the esoterics with J

我认为您可以针对这种特殊情况使用 lambda 函数。

res = lambda a,b : a+b

This challenge没有限制,你必须自己定义函数。 24个字符的解决方案是:

mergeArrays = list.__add__