我必须使用doctest运行并检查以下内容
>>> extract_second([('a',3,'x'),('b',4,'y')])
[3, 4]
我能够使用以下方式成功运行:
x[1] for x in elements
但是第二次测试没有成功,这是:
>>> extract_second([('c',5,'z'),('d',6)])
[5, None]
然后我使用以下代码通过一些研究来解决它
lst=[(1,2,3),(4,5,6)]
for i in lst:
if len(i) != 3:
print "None"
else:
print i[1],
之前我能够根据需要打印输出,但括号和逗号不包含在其中
预期结果:
[3,4]
[5, None]
收到输出:
3 4
5 None
答案 0 :(得分:1)
你print
在循环中而不是构建一个新列表:
result = []
for i in lst:
if len(i) != 3:
result.append(None)
else:
result.append(i[1])
return result
应该给你预期的输出。
注意:您仍然可以使用列表解析来执行此操作:
>>> elements = [('c',5,'z'),('d',6)]
>>> [x[1] if len(x) == 3 else None for x in elements]
[5, None]