如何在Python嵌套列表中判断指定字符串是否存在?
解决嵌套列表中检查字符串是否存在的问题
嘿,我一眼就看出问题所在啦!
你当前的代码里,list[0]是一个子列表(具体是["I am a boy"]),当你写"boy" in list[0]时,Python会去判断"boy"是不是这个子列表里的直接元素——但显然不是,这个子列表里的唯一元素是完整的句子"I am a boy",而不是单独的"boy"字符串。
另外提醒一句:别用list当变量名哦,这是Python的内置类型,会覆盖掉系统自带的list()函数,容易引发奇怪的问题,建议改成my_list这类名字。
修正方案一:直接访问子列表的元素
如果你确定子列表里只有一个元素,直接通过索引my_list[0][0]拿到那个字符串,再检查目标是否在其中:
my_list = [["I am a boy"],["I am a girl"]] print(my_list[0]) if "boy" in my_list[0][0]: print("You got it")
运行这段代码就会输出You got it啦。
修正方案二:遍历子列表(适用于子列表有多个元素的情况)
如果你的子列表可能包含多个字符串,不想硬写索引的话,可以用循环遍历子列表里的每个元素,逐个检查:
my_list = [["I am a boy", "boyhood story"],["I am a girl"]] target_str = "boy" # 检查第一个子列表中的所有元素 for item in my_list[0]: if target_str in item: print("You got it") break # 找到后就停止循环,提升效率
核心思路就是:你要检查的是子列表中的字符串元素是否包含目标字符串,而不是目标字符串本身是不是子列表的直接成员,一定要注意嵌套列表的层级哦!
内容的提问来源于stack exchange,提问作者Chrysna
相关产品推荐
相关产品推荐

