繁体   English   中英

使用 in 运算符验证 Python 列表中存在的值

[英]Validating values present in Python List using in operator

我在下面编写了简单的代码来检查 Python 列表(unique_status)中存在的值:

if "Match" in unique_status and "Mismatch" in unique_status:
    print("Match and Mismatch both found.")
elif "Match" in unique_status:
    print("Only Match found.")
elif "Mismatch" in unique_status:
    print("Only Mismatch found.")
else:
    print("Something else is also present.)

For Value in Unique_Status = ['Match'], I am getting "Only Match Found"
For Value in Unique_Status = ['Mismatch'], I am getting "Only Mismatch Found"
For Value in Unique_Status = ['Match','Mismatch'], I am getting "Match and Mismatch both found."

但是,当列表还包含一些其他值时,例如 ['Match','Mismatch','XYZ'],则其他部分不会被执行。 我的代码需要什么条件/修改才能检查 Unique_Status 列表,并执行 else 条件,以防除 Match 和 Mismatch 之外还存在其他一些值。

if "Match" in unique_status and "Mismatch" in unique_status:
    print("Match and Mismatch both found.")
elif "Match" in unique_status:
    print("Only Match found.")
elif "Mismatch" in unique_status:
    print("Only Mismatch found.")

if any( word not in ['Match','Mismatch'] for word in unique_status ):
    print("Something else is also present.)

跟进

如果你只想打印一件东西,你应该这么说。 在这种情况下,“in”显然是错误的运算符。 你需要寻找平等:

if unique_status == ["Match"]:
    print("Only Match found.")
elif unique_status == ["Mismatch"]:
    print("Only Mismatch found.")
elif set(unique_status) == set(["Match","Mismatch"]):
    print("Match and Mismatch both found.")
else:
    print("Something else is also present.)

因为如果unique_status = ['Match','Mismatch','XYZ']您的第一个if 条件得到满足因此,else 不起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM