2 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果我沒(méi)有正確理解您的問(wèn)題,我認(rèn)為您的功能可以簡(jiǎn)化為:
def adjacentElementsProduct(elm):
if len(elm) < 2:
return None
return max(k*v for k, v in zip(elm, elm[1:]))
所以:
>>> adjacentElementsProduct([1, 2, 3, 4, 5])
20
>>> adjacentElementsProduct([1, -6])
-6
>>> adjacentElementsProduct([2, 5, 7, -9, 10, 0, 11])
35

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
方法的修改:
from operator import mul
def adjacentElementsProduct(elm):
if len(elm) < 2:
return None
return max(map(mul, elm, elm[1:]))
一個(gè)更短的版本:
def adjacentElementsProduct(elm):
return max(map(mul, elm, elm[1:])) if len(elm) < 2 else None
還有一個(gè):
from operator import mul
from itertools import starmap
def adjacentElementsProduct(elm):
if len(elm) < 2:
return None
return max(starmap(mul, zip(elm, elm[1:])))
添加回答
舉報(bào)