为什么下面的代码不起作用?你知道吗
data = [["4","5"],["3","7"]]
search = "4"
for sublist in data:
if sublist[1] == "4":
print ("there"), sublist
break
else:
print("not there")
break
很抱歉大家都很困惑。我试图检查整个列表及其所有子列表,但我不明白这只会检查列表的第二个元素,因为我忘了Python在第一个元素中有第0个位置。但是,我要怎么检查整个名单呢?删除“break”和[1]?你知道吗
Tags:
使用generator expressions和^{} 内置函数很容易做到这一点:
甚至更短,正如@Veedrac在评论中指出的:
编辑:如果要打印元素所在的子列表,则必须使用显式循环,如@thefourtheye的答案所示:
列表在Python中是0索引的,因此
["4", "5"][1]
是"5"
,而不是"4"
。你知道吗另外,您想检查
"4"
是在子列表中,还是在子列表的第一个位置?如果是前者,您可能希望改用if search in sublist
。你知道吗注意,正如Noctua在注释中提到的,您将只检查这里的第一个子列表,因为在任何情况下都是
break
,所以您可能希望删除该语句,至少在else
分支中。你知道吗相关问题 更多 >
编程相关推荐