Python 嵌套if语句在列表列表中不返回任何内容
以下是我的列表:Python 嵌套if语句在列表列表中不返回任何内容,python,python-3.x,python-3.4,Python,Python 3.x,Python 3.4,以下是我的列表: mylist = [ [1, "John", None, "Doe"], [2, "Jane", "group1", "Zee"], [3, "Lex", "group2", "Fee"]] y = 2 for sublist in mylist: if sublist[0] == y: # meaning the third list if sublist[2] == None: print(sublist[2]) #
mylist = [ [1, "John", None, "Doe"], [2, "Jane", "group1", "Zee"], [3, "Lex", "group2", "Fee"]]
y = 2
for sublist in mylist:
if sublist[0] == y: # meaning the third list
if sublist[2] == None:
print(sublist[2]) # this should print nothing
else:
print(sublist[2]) #this should print something
最终的结果是该代码不会打印任何内容
我正在尝试检查列表列表中无值的情况。上述方法似乎不起作用
我无法理解为什么它拒绝打印任何内容,但我假设嵌套的if子列表[2]==None:可能与此有关
我正在尝试检查我的列表中没有值的情况
然后只需在每个子列表中检查成员身份:
for sublist in mylist:
if None in sublist:
# do your check
print("None in list: ", sublist)
印刷品:
None in list: [1, 'John', None, 'Doe']
如果您想查看一般情况下是否存在None,请使用any:
由于mylist[0]中没有任何内容,因此返回True
我正在尝试检查我的列表中没有值的情况
然后只需在每个子列表中检查成员身份:
for sublist in mylist:
if None in sublist:
# do your check
print("None in list: ", sublist)
印刷品:
None in list: [1, 'John', None, 'Doe']
如果您想查看一般情况下是否存在None,请使用any:
由于mylist[0]中没有任何内容,因此返回True我想我理解您试图实现的目标。 您希望通过列表列表进行枚举,然后检查第y个字段是否不包含任何内容 您面临的问题是,当您这样做时:
y = 2
指示第三个字段,然后执行以下操作:
if sublist[0] == y:
然后检查子列表的[0]所指示的第一个字段是否等于2
这将使您进入第三个子列表,而不是子列表枚举中的第三个字段。这就是代码出错的地方
您需要完全删除if子列表[0]==y:并只需检查子列表[y]
以下代码将枚举列表列表,然后检查第y个字段中是否有:
如果要检查任何包含None的字段,可以得到如下结果:
mylist = [ [1, "John", None, "Doe"], [2, "Jane", "group1", "Zee"], [3, "Lex", "group2", "Fee"]]
for sublist in mylist:
for field in sublist:
if field == None:
print("None detected in: " + str(sublist))
我想我理解你想要实现的目标。 您希望通过列表列表进行枚举,然后检查第y个字段是否不包含任何内容 您面临的问题是,当您这样做时:
y = 2
指示第三个字段,然后执行以下操作:
if sublist[0] == y:
然后检查子列表的[0]所指示的第一个字段是否等于2
这将使您进入第三个子列表,而不是子列表枚举中的第三个字段。这就是代码出错的地方
您需要完全删除if子列表[0]==y:并只需检查子列表[y]
以下代码将枚举列表列表,然后检查第y个字段中是否有:
如果要检查任何包含None的字段,可以得到如下结果:
mylist = [ [1, "John", None, "Doe"], [2, "Jane", "group1", "Zee"], [3, "Lex", "group2", "Fee"]]
for sublist in mylist:
for field in sublist:
if field == None:
print("None detected in: " + str(sublist))
这在我的机器上打印group1。使用python 3.4。子列表[0]==y,因为y=2,对于第二个列表将为真。我使用python 2.7,您的代码打印组1如果您打印相同的东西子列表[2],而不管子列表[2]的值如何,为什么您有内部的if?如果我指定了y=1,那么它的打印无..您真正想要的是什么?这会在我的机器上打印组1。使用python 3.4。子列表[0]==y,因为y=2,对于第二个列表将为真。我使用python 2.7,您的代码将打印组1如果您打印相同的内容子列表[2],而不管子列表[2]的值如何,为什么你有内部的if呢?如果我指定y=1,那么它就没有打印。你真正想要的是什么?谢谢你的回答和详细的解释。我会给你一张赞成票,但有人给了我一张反对票,我的声誉又低于15了。@coolpy谢谢你的反馈,祝你好运。您可以尝试标记为答案:-谢谢您的答案和详细解释。我会给你一张赞成票,但有人给了我一张反对票,我的声誉又低于15了。@coolpy谢谢你的反馈,祝你好运。您始终可以尝试标记为答案:-