如何根据条件在 Python 中附加列表?

How to append a list in Python based on condition?

我在附加列表时遇到问题。以下是代码:

score_Resp = 0
score_O2Sat = 5
score_SBP = 0
score_HR = 1
score_Temp = 0

Abnormal = []
if score_Resp != 0:
    Abnormal.append("Resp")
elif score_O2Sat != 0:
    Abnormal.append("O2Sat")
elif score_SBP != 0:
    Abnormal.append("SBP")
elif score_HR != 0:
    Abnormal.append("HR")
elif score_Temp != 0:
    Abnormal.append("Temp")
else:
    print("Invalid Statement!")
print("Abnormal Vitals:", Abnormal)

输出:

Abnormal Vitals: ['O2Sat']

应该是:

Abnormal Vitals: ['O2Sat', 'HR']

谁能帮我看看哪里出了问题?而且,有人可以用更少的代码改进代码吗?谢谢

您不应该使用 elif。只是简单地 ifs 来评估每个条件。

像这样:

if score_Resp != 0:
    Abnormal.append("Resp")
if score_O2Sat != 0:
    Abnormal.append("O2Sat")
if score_SBP != 0:
    Abnormal.append("SBP")
if score_HR != 0:
    Abnormal.append("HR")
if score_Temp != 0:
    Abnormal.append("Temp")

elif 子句是 else if。因此,当您的代码评估为 True 第一个时,它只会忽略其余部分。这就是您没有得到预期结果的原因。

你可以试试:

score_Resp = 0
score_O2Sat = 5
score_SBP = 0
score_HR = 1
score_Temp = 0

Abnormal = []
if score_Resp != 0:
    Abnormal.append("Resp")
if score_O2Sat != 0:
    Abnormal.append("O2Sat")
if score_SBP != 0:
    Abnormal.append("SBP")
if score_HR != 0:
    Abnormal.append("HR")
if score_Temp != 0:
    Abnormal.append("Temp")

print("Abnormal Vitals:", Abnormal)

仅当您通过所有条件并想要检查它时才使用它。

score_Resp = 0
score_O2Sat = 5
score_SBP = 0
score_HR = 1
score_Temp = 0

Abnormal = []
if score_HR != 0:
    Abnormal.append("HR")
if score_O2Sat != 0:
    Abnormal.append("O2Sat")
if score_SBP != 0:
    Abnormal.append("SBP")
if score_Resp != 0:
    Abnormal.append("Resp")
if score_Temp != 0:
    Abnormal.append("Temp")

print("Abnormal Vitals:", Abnormal)