Python 用于提取秒数的doctest

Python 用于提取秒数的doctest,python,testing,doctest,Python,Testing,Doctest,我写了一篇博士论文: def提取_秒(三倍): “”“给定一个三元组列表,返回一个包含每个三元组的第二个元素的列表 If an item is not a triple, return None for that element >>> extract_second([('a',3,'x'),('b',4,'y')]) [3, 4] >>> extract_second([('c',5,'z'),('d',6)]) [5, None] >>>

我写了一篇博士论文:

def提取_秒(三倍): “”“给定一个三元组列表,返回一个包含每个三元组的第二个元素的列表

If an item is not a triple, return None for that element

>>> extract_second([('a',3,'x'),('b',4,'y')])
[3, 4]
>>> extract_second([('c',5,'z'),('d',6)])
[5, None]
>>> extract_second([('a',3,'x'),('b',4,'y')]) ==  [3, 4]
True
"""
for x in triples:
    return x[1]

虽然代码没有返回输入的第二个列表的第一个索引。有什么想法吗?

您只返回一个答案的原因是因为返回语句一遇到就打断了for循环。它相当于这样:

for x in list:
     break
 return x[1]
您的问题的解决方案如下:

results = []
for i in triples:
if len(i) == 3:
   results.append(i[1])
else:
   results.append(None)
return results
此解决方案将答案附加到名为results的列表中,并在完成对三元组的迭代后返回结果