为什么这些都不全部返回bbb?
def solution(A):
positive = range(min([max(0,min(A))]),max(A))
return [value for value in positive if value not in A]
在所有情况下,我都希望>>> A = [-6,-8,2,3,5]
>>> solution(A)
[0, 1, 4]
返回一个包含3个元素的数组。
$ perl -e '$a=" "; print map { "b" } split / /, $a;'
<<nothing>>
$ perl -e '$a=",,"; print map { "b" } split /,/, $a;'
<<nothing>>
$ perl -e '$a=" a"; print map { "b" } split / /, $a;'
bbb
$ perl -e '$a=",,a"; print map { "b" } split /,/, $a;'
bbb
答案 0 :(得分:9)
split
的第三个参数表示要生成多少个元素:
split /PATTERN/,EXPR,LIMIT
... 如果
LIMIT
为负,则将其视为任意大;否则,将其视为任意大。产生尽可能多的字段。如果省略
LIMIT
(或等效地为零),则通常将其视为负值,但除去尾随的空白字段(始终保留空的开头字段);如果所有字段均为空,则所有字段都被视为尾随(因此在这种情况下将被剥离)。
默认值为0
,表示尽可能多的,但不包含任何尾随的空元素。
您可以将-1
作为第三个参数传递给split
,以抑制此行为。