如果一个字母(字符串)在列表中,
find_letter(['o', ['你好', 'c', '再见']),
返回 True,否则返回 False。
def find_letter(lst):
lst=['o','hello', 1]
n='o'
if not lst:
return 0
elif lst[0] == n:
return True
elif find_letter(lst[0:]):
return True
else:
return False
print(find_letter(lst))
它确实返回“True”,但我不确定这是否是正确的方法。也许有更好的方法?在第二个 elif 语句中,如果第一个元素不包含该字母,python 是否会遍历列表中的所有元素?该函数必须是递归的。
我认为最Pythonic的方法是使用
def find_letter(letter, lst):
return any(letter in word for word in lst)
这样做的美妙之处在于它会迭代lst
并在该列表中的单词之一包含时立即返回letter
。而且,它不需要递归。
这返回False
代替0
if lst
虽然是空的(与你的程序不同)但是因为False
评估为0
无论如何(反之亦然),这并不是真正的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)