我有一个代码如下:
flag = 0
if A == 'string1':
flag = 1
if B == 'string2':
flag = 1
if C == 'string3':
flag = 1
有没有办法创建我想检查的规则列表,检查是否至少有一个是真的,并将flag
设置为1?例如,
D = [A == 'string1', B == 'string2', C=='string3']
if D:
flag = 1
答案 0 :(得分:4)
if A == 'string1' or \
B == 'string2' or \
C == 'string3':
flag = True # use Boolean values, not coded numbers
或者只是分配布尔表达式的结果:
flag = A == 'string1' or \
B == 'string2' or \
C == 'string3'
最后一个会为flag
提供正确的值,True
或False
。
如果您需要变量和值列表,请尝试以下方法:
vars = [A, B, C]
vals = ['string1', 'string2', 'string3']
flag = any([vars[i] == vals[i] for i in range(len(vars)) ])
...或者制作相同项目的字典(由codehearts
提供):
checks = { 'string1': A, 'string2': B, 'string3': C }
flag = any([var == val for var, val in checks.iteritems() ])
...或zip
每个wwii
列表成对(元组):
flag = any(a == b for a, b in zip(vars, vals))
您可以根据需要扩展列表大小。这假设每个"规则"只是检查配对值。
答案 1 :(得分:3)
您可以使用任何:
//1. User scrolls
$(document).one("scroll", function() {
$(".website-wrapper").animate({
bottom: "1000",
opacity: 0.25,
},300,function(){
});
});
答案 2 :(得分:2)
你快到了。
D = [A == 'string1', B == 'string2', C=='string3']
if True in D:
flag = 1
D具有每个测试的布尔值,如果其中任何一个为真,则在D测试中为True。
编辑:我在一年多前写过这篇文章,但最近有人对它进行了评论,并回顾它,我现在知道有一个可以节省一些按键的内置功能。</ p>我们可以将上面的代码编写为
D = [A == 'string1', B == 'string2', C=='string3']
if any(D):
flag = 1