如何在不使用 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__
今天我在浏览编程挑战网站,看到一个非常简单的挑战,其中规定用户应该尝试使用尽可能少的字符来解决它。
挑战在于将两个数组相互合并。
例如:
['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__