我想写一个函数,检查True
boolena语句是否在all_vals
内。如果有True
值,则代码将为yes
。如果没有,则代码输出no
,本质上创建一个或语句。下面的代码不起作用。我该如何修改它,使其获得下面的预期输出?
def vals(all_vals):
for x in all_vals:
if True in all_vals:
print('yes')
else:
print('no')
a = [True, True, True]
b = [True, False, True, True, False]
c = [False, False]
d = [True, False]
vals([a,b,c,d])
预期输出:
yes
yes
no
yes
您需要的不是:if True in all_vals:
而是if True in x:
,如下所示:
def vals(all_vals):
for x in all_vals:
if True in x:
print('yes')
else:
print('no')
a = [True, True, True]
b = [True, False, True, True, False]
c = [False, False]
d = [True, False]
vals([a,b,c,d])
此外,您还可以使用来持久地缩短代码
vals = lambda all_vals: print("n".join(['yes' if True in i else 'no' for i in all_vals]))
a = [True, True, True]
b = [True, False, True, True, False]
c = [False, False]
d = [True, False]
vals([a,b,c,d])
输出:
yes
yes
no
yes
def vals(all_vals):
for x in all_vals:
if True in x: # <--- Your typo here
print("yes")
else:
print("no")
a = [True, True, True]
b = [True, False, True, True, False]
c = [False, False]
d = [True, False]
vals([a, b, c, d])