'return (None, [lng])[recur]' 中的“[recur]”的功能是什么
What is functionality of the '[recur]' in 'return (None, [lng])[recur]'
我已经解决了这个 challange on CodeWars in the other way, and now I'm learning from other solutions. One of them 是:
# Recursive solution
def sqInRect(lng, wdth, recur = 0):
if lng == wdth:
return (None, [lng])[recur] # If this is original function call, return None for equal sides (per kata requirement);
# if this is recursion call, we reached the smallest square, so get out of recursion.
lesser = min(lng, wdth)
return [lesser] + sqInRect(lesser, abs(lng - wdth), recur = 1)
你能解释一下这行是什么意思吗:return (None, [lng])[recur]
(特别是 [recur]
- 我在任何地方都没有看到这样的东西......它是索引,列表还是什么? 它提供什么功能?)。我知道代码的作用,因为我的代码以另一种方式做同样的事情,但我只是问 return
中的方括号
非常感谢!
这没什么神奇的;它是元组索引,简单明了。
(None, [lng])
创建一个包含两个元素的元组,[recur]
根据 recur
是 0 还是 1 获取此元组的第一个或第二个元素。
我已经解决了这个 challange on CodeWars in the other way, and now I'm learning from other solutions. One of them 是:
# Recursive solution
def sqInRect(lng, wdth, recur = 0):
if lng == wdth:
return (None, [lng])[recur] # If this is original function call, return None for equal sides (per kata requirement);
# if this is recursion call, we reached the smallest square, so get out of recursion.
lesser = min(lng, wdth)
return [lesser] + sqInRect(lesser, abs(lng - wdth), recur = 1)
你能解释一下这行是什么意思吗:return (None, [lng])[recur]
(特别是 [recur]
- 我在任何地方都没有看到这样的东西......它是索引,列表还是什么? 它提供什么功能?)。我知道代码的作用,因为我的代码以另一种方式做同样的事情,但我只是问 return
中的方括号
非常感谢!
这没什么神奇的;它是元组索引,简单明了。
(None, [lng])
创建一个包含两个元素的元组,[recur]
根据 recur
是 0 还是 1 获取此元组的第一个或第二个元素。