提取秒数的doctest
doctest for extracting seconds
我写了一个doctest:
def extract_second(三倍):
"""给定一个三元组列表,return 一个包含每个三元组第二个元素的列表
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]
虽然代码没有return输入第二个列表的第一个索引。有什么想法吗?
您只得到一个答案 returned 的原因是 return 语句一遇到它就会中断您的 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 和 returns results 的列表三倍.
我写了一个doctest:
def extract_second(三倍): """给定一个三元组列表,return 一个包含每个三元组第二个元素的列表
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]
虽然代码没有return输入第二个列表的第一个索引。有什么想法吗?
您只得到一个答案 returned 的原因是 return 语句一遇到它就会中断您的 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 和 returns results 的列表三倍.