Python中为何'in'成员运算符判断返回False?
问题原因解析
你写的if b in a:里,Python的in运算符在这里的逻辑是检查b是否是列表a中的某一个完整成员,而不是检查b是不是列表里某个元素的子串。
你的列表a里的元素是"Hill, Lauren"和"Smith, Jerry",这两个元素都和"Smith"完全不相等,所以in判断返回False,程序输出False。
如果要判断"Smith"是否存在于列表的某个元素中,需要遍历列表里的每个元素,检查子串关系,比如用any()函数简化代码:
a = ["Hill, Lauren", "Smith, Jerry"] b = "Smith" if any(b in item for item in a): print("True") else: print("False")
这里any()会逐个检查列表中的元素,只要有一个元素包含b,就会返回True,最终输出符合预期的结果。
内容的提问来源于stack exchange,提问作者BeakedFish
相关产品推荐
相关产品推荐

