如何让python告诉我以下哪个变量使ifstatement有效?

2024-04-23 20:41:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个if语句,如下所示,我想知道,对于我正在检查的4个变量,看看我的文件中的相应列中是否有单词“TRUE”,如何让python输出if语句对哪个变量有效?你知道吗

例如:如果我的数据集中的第一行(顺便说一下,这是一个电子表格)中变量a的单词为'true',其余的单词为'false',那么在循环的特定迭代过程中,if语句将对该变量有效。所以,在这种情况下,我希望python打印出它是变量“A”,对于循环的每个迭代,依此类推。我怎样才能让程序做到这一点?你知道吗

for x in range(1,len(column)):
    if A[x] or B[x] or C[x] or D[x] == "TRUE":
       # here I want to print out whichever variable the 'true' corresponds to

Tags: or文件to数据程序falsetruefor
3条回答

你可以做:

for x in range(1, len(column)):
    for name, var in [('A', A), ('B', B), ('C', C), ('D', D)]:
        if var[x] == "TRUE":
             print name

它可以是多个,但它只在第一个阳性之前进行检查,因此即使是解释器也不知道CD是否包含TRUE,因为BTRUE。在每列上分别拆分为多个if语句。你知道吗

首先,你的if语句没有达到你期望的效果。隐式大括号使其看起来像这样:

if (A[x]) or (B[x]) or (C[x]) or (D[x] == "TRUE"):

如您所见,== "TRUE"部分只适用于D[x],而不适用于其他部分。相反,具有“trueish”值的A[x]B[x]C[x]将足以使整个检查的计算结果为true。即使它们都包含"FALSE"。你知道吗

相反,您需要为所有人重复== "TRUE"部分:

if A[x] == "TRUE" or B[x] == "TRUE" or C[x] == "TRUE" or D[x] == "TRUE":

在检查相等性时,还可以使用in运算符检查"TRUE"是否在所有四列的列表中:

if "TRUE" in (A[x], B[x], C[x], D[x]):

但是,如果您想知道这四列中哪一列具有真正的值,则需要将其拆分:

if A[x] == "TRUE":
    # A is true
elif B[x] == "TRUE":
    # B is true
elif C[x] == "TRUE":
    # C is true
elif D[x] == "TRUE":
    # D is true
else:
    # neither is true

相关问题 更多 >