a = [['jimmy', '25', 'pancakes'], ['tom', '23', 'brownies'], ['harry', '21', 'cookies']]
for i in range(len(a)):
if (a[i][1] == '20' or a[i][1] == '26'):
print 'yes'
else:
print 'Not found'
此输出的Not found
三次。如果if循环的每次迭代的输出都相同,我希望它迭代整个列表,然后只打印Not found
一次。
如果我更改a[i][1] == '25'
并且输出变为:
yes
Not found
Not found
我想打印yes
但不打印Not found
。
答案 0 :(得分:2)
您可能正在寻找for-else
循环。
和@Burhan Khalid建议使用for i in a
代替range(len(a))
:
a = [['jimmy', '25', 'pancakes'], ['tom', '23', 'brownies'], ['harry', '21', 'cookies']]
for i in a:
if (i[1] == '25' or i[1] == '26'):
print 'yes'
else:
print 'Not found'
<强>输出:强>
yes
Not found
或者您正在寻找any()
:
In [200]: if any((i[1]=='25' or i[1]=='26') for i in a):
print 'yes'
else:
print 'not Found'
.....:
yes
In [204]: if any((i[1]=='20' or i[1]=='26') for i in a):
print 'yes'
else:
print 'not Found'
.....:
not Found