如何在不使用return语句的情况下返回值?

时间:2015-08-04 02:52:16

标签: python python-3.4

今天我正在浏览编程挑战网站,看到一个非常容易的挑战,声明用户应尽量使用尽可能少的字符来解决它。

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

挑战声明用户需要使用此开场代码:

def mergeArrays(a, b):

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

导致完整的代码:

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

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

3 个答案:

答案 0 :(得分:5)

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

{{1}}

答案 1 :(得分:0)

如果你使用一个单字母的函数名称,你可以缩短它,虽然它只是在Python中得到的短,但没有编写你自己的C扩展或覆盖你的变量。

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

def m(a, b)
    a + b
end

还有其他语言如Golfscript可以完成同样的事情。或者你可以用J进入神秘主义。

答案 2 :(得分:-2)

我认为你可以在这种特殊情况下使用lambda函数。

res = lambda a,b : a+b