这是我的列表(列表):
onDestroy()
最终结果是没有为此代码打印任何内容。
我正在尝试检查我的列表(列表中)中有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
值的情况。上面的方法似乎不起作用。
我无法弄清楚它为什么拒绝打印任何东西,但我认为嵌套的None
可能与它有关。
答案 0 :(得分:4)
我正在尝试检查列表(列表中)中有无值的情况
然后只检查每个子列表in
的成员资格:
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
:
any(None in sub for sub in mylist)
自True
None
以来{p}返回mylist[0]
答案 1 :(得分:2)
我想我明白你要完成的事情。
您想枚举列表列表,然后查看y
- 字段,看它是否包含None
。
您面临的问题是:当您这样做时:
y = 2
表示第三个字段,稍后你会这样做:
if sublist[0] == y:
然后您正在检查[0]
的第一个字段(由sublist
表示)是否等于2
它将您带到第三个子列表,而不是子列表枚举中的第三个字段。这是您的代码出错的地方。
您需要完全放弃if sublist[0] == y:
,只需检查sublist[y]
以下代码将枚举您的列表列表,然后查看y
的{{1}}字段:
None
如果您想查看包含mylist = [ [1, "John", None, "Doe"], [2, "Jane", "group1", "Zee"], [3, "Lex", "group2", "Fee"]]
y = 2
for sublist in mylist:
if sublist[y] == None:
print(sublist[y]) # this should print nothing
else:
print(sublist[y]) #this should print something
的任何字段,您会收到以下内容:
None