3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您將返回True正確的位置,但是如果第一項(xiàng)不匹配,該函數(shù)將False立即返回,而不是繼續(xù)循環(huán)。只需將移到return False函數(shù)的末尾,即循環(huán)之外:
def checks(a,b):
for item in a:
if b[1] == item[1]:
return True
return False
True如果項(xiàng)目匹配False則返回,如果循環(huán)不匹配則返回。
無(wú)論如何,這解釋了為什么您的代碼無(wú)法正常工作,而是any按照其他人的建議使用Pythonic的原因。=)

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
這可以用一種更簡(jiǎn)單的方式表示:
def checks(a, b):
return any(b[1] == item[1] for item in a)

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以any()在這里使用:
def checks(a,b):
return any (b[1] == item[1] for item in a)
>>> checks(['5v','7y'],'6y')
True
>>> checks(['5v','7z'],'6y')
False
幫助any:
>>> print any.__doc__
any(iterable) -> bool
Return True if bool(x) is True for any x in the iterable.
If the iterable is empty, return False.
添加回答
舉報(bào)