Python 在While循环中使用多个If语句
我试图写一个while循环,它遍历特定的列表,寻找特定的子字符串。它将查找带有这些子字符串的单词并打印出这些字符串 下面是一个完美的示例,但只适用于一个单词:Python 在While循环中使用多个If语句,python,loops,Python,Loops,我试图写一个while循环,它遍历特定的列表,寻找特定的子字符串。它将查找带有这些子字符串的单词并打印出这些字符串 下面是一个完美的示例,但只适用于一个单词: lista = ['applepie','appleseed','bananacake','bananabread'] i = 0 z = len(lista) while i < z: if ('pie' in lista[0+i]) == True: print(lista[0+i])
lista = ['applepie','appleseed','bananacake','bananabread']
i = 0
z = len(lista)
while i < z:
if ('pie' in lista[0+i]) == True:
print(lista[0+i])
break
i = i + 1
else:
print('Not There Yet')
lista=['applepie','appleseed','bananacake','bananabread']
i=0
z=len(lista)
而i
这将打印出applepie(这是所需的!)
如何修复此while循环以添加多个约束
我正在尝试这样做:
lista = ['applepie','appleseed','bananacake','bananabread']
i = 0
z = len(lista)
while i < z:
if ('pie' in lista[0+i]) == True:
print(lista[0+i])
if ('cake' in lista[0+1]) == True:
print(lista[0+i])
i = i + 1
else:
print('Not There Yet')
lista=['applepie','appleseed','bananacake','bananabread']
i=0
z=len(lista)
而i
这将打印出:
苹果派
还没有
当我要打印此文件时:
苹果派
香蕉蛋糕
我使用了多个'if'语句,因为我知道如果我想使用'elif',它只会在第一个'if'语句为false时运行
感谢您的帮助 你有两个小问题,我认为一个更大。这两个小问题中的第一个就是上面尼克和布伦登提到的。第二个是你的条件。它应该是您可以用来查看条件列表。当条件首次满足时,它将计算为
True
,如果从未发生,则计算为False
。如果您将其与常规pythonfor
循环相结合,它将非常简洁:
lista = ['applepie','appleseed','bananacake','bananabread']
words = ['pie', 'cake']
for food in lista:
if any(word in food for word in words):
print(food)
它打印:
applepie
bananacake
您也可以使用与列表理解相同的方法来获得匹配的单词列表:
lista = ['applepie','appleseed','bananacake','bananabread']
words = ['pie', 'cake']
found = [food for food in lista if any(word in food for word in words)]
# ['applepie', 'bananacake']
一般来说,Python不鼓励您在循环中使用索引,除非您真的需要。它往往容易出错,也更难阅读。
[0+1]
列表中的“蛋糕”应该是[i]
列表中的“蛋糕”(不知道为什么要添加0…但它应该是i
,而不是1
)为什么要这样做列表而不是常规的循环?!?