Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌套if语句在列表列表中不返回任何内容_Python_Python 3.x_Python 3.4 - Fatal编程技术网

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谢谢你的反馈,祝你好运。您始终可以尝试标记为答案:-