Python中判断'b4' in [['a4','b4','c4']]返回False的原因排查
问题原因
你写的[['a4', 'b4', 'c4',...]]是嵌套列表——外层列表只有一个元素,就是里面那个包含'b4'的子列表。Python的in运算符在这里只会检查'b4'是不是外层列表的直接成员,而不是内层子列表里的元素,所以会返回False。
解决方案
- 如果你原本就不需要嵌套结构,直接去掉外层的方括号即可:
if 'b4' in ['a4', 'b4', 'c4', ...]: # 你的逻辑代码 - 如果必须保留嵌套结构,要检查所有子列表里是否存在目标值,可以用
any()函数:nested_list = [['a4', 'b4', 'c4'], ...] if any('b4' in sublist for sublist in nested_list): # 你的逻辑代码 - 如果只需要检查嵌套列表里的第一个子列表,直接通过索引访问内层:
nested_list = [['a4', 'b4', 'c4'], ...] if 'b4' in nested_list[0]: # 你的逻辑代码
内容的提问来源于stack exchange,提问作者Lars
相关产品推荐
相关产品推荐

