1
我无法解决这个问题,并且需要帮助来理解为什么在下面的代码块中返回时它只输出date_list中的第一个列表,而不是与print语句相同?代码块不会返回所有值吗?
date_list = [['2015-11-11', '2015-12-02'], ['2016-04-03', '2016-04-15'], ['2016-05-10', '2016-05-22']]
def formatdates():
for i in range(len(date_list)):
start_date = date_list[i][0]
end_date = date_list[i][1]
s = datetime.strptime(start_date, "%Y-%m-%d")
e = datetime.strptime(end_date, "%Y-%m-%d")
formatted_s = s.strftime("%e-%b-%Y")
formatted_e = e.strftime("%e-%b-%Y")
i += 1
print("{} to {}".format(formatted_s, formatted_e)) # Output 1 below
return print("{} to {}".format(formatted_s, formatted_e)) # Output 2 below
print(formatdates())
想要的结果是在函数中返回时,根据print语句输出格式化日期列表? 如何将所有行作为打印列表返回?
输出1:
11-NOV-2015 2-DEC-2015
3-APR-2016至15-APR-2016
10五月 - 2016年22月 - 2016
输出2:
11-NOV-2015 2-DEC-2015
这是值得添加一个解释,所以OP实际上知道他们的代码有什么问题,并可以从下次的错误中学习。 – DeepSpace
@valentin,谢谢我明白我现在做错了什么:) – MattE
@DeepSpace,对于遇到同样问题的新用户会有好处。 –