CoffeeScript列表推导与Pythons略有不同......其中哪些是人们喜欢返回列表推导的方式?
return elem+1 for elem in [1,2,3] # returns 3+1
return [elem+1 for elem in [1,2,3]].pop() # returns [2,3,4]
return (elem+1 for elem in [1,2,3]) # returns [2,3,4]
在Python中,我只想写:
return [elem+1 for elem in [1,2,3]]
它正确地返回列表,而不是列表列表,就像在CoffeeScript中一样。
答案 0 :(得分:9)
人们喜欢返回列表推导的方式中的哪一种?
return elem+1 for elem in [1,2,3] # returns 3+1
return [elem+1 for elem in [1,2,3]].pop() # returns [2,3,4]
return (elem+1 for elem in [1,2,3]) # returns [2,3,4]
嗯,在三个选项中,肯定是#3。但最好的风格选择实际上是这样的:
elem+1 for elem in [1,2,3] # returns [2,3,4]
作为函数的最后一行,任何表达式expr
都等同于return (expr)
。 <{1}}关键字很少需要。
答案 1 :(得分:2)
我从来没有使用过CoffeeScript,但是如果我的选项得到了错误的结果,做了一个愚蠢的[...].pop()
kludge或只是使用一组括号,我会去括号。