1 回答

TA貢獻1783條經(jīng)驗 獲得超4個贊
首先,您可以使用 a 來重寫循環(huán):zip
def array_check(nums):
for a, b, c in zip(nums, nums[1:], nums[2:]):
if a == 1 and b == 2 and c == 3:
return True
return False
然后,使用元組比較:
def array_check(nums):
for a, b, c in zip(nums, nums[1:], nums[2:]):
if (a, b, c) == (1, 2, 3):
return True
return False
然后是內(nèi)置的:any
def array_check(nums):
return any((a, b, c) == (1, 2, 3) for a, b, c in zip(nums, nums[1:], nums[2:]))
測試:
>>> array_check([1,3,4,1,2,3,5])
True
>>> array_check([1,3,4,1,3,5])
False
注意:有關更快的版本,請參閱下面的@juanpa.arrivillaga評論。
如果你想模仿功能風格:
import operator, functools
def array_check(nums):
return any(map(functools.partial(operator.eq, (1,2,3)), zip(nums, nums[1:], nums[2:])))
但這真的很不合理!
添加回答
舉報