2024-04-26 12:52:30 发布
网友
我有以下3个数组。你知道吗
years=[2011,2012,2012] monthes=[01,02,03] days=[10,20,30]
有没有一种方法可以将它们转换成日期数组而不使用循环,这意味着可以将整数数组组合成日期数组的方法/库?你知道吗
dates = [2011/01/10,2012/02/20,2013/03/30]
试试这个:
dates = ['/'.join(map(str,x)) for x in zip(years,months,days)]
示例:
>>> years=[2011,2012,2012] >>> months=['01','02','03'] >>> days=[10,20,30] >>> ['/'.join(map(str,x)) for x in zip(years,months,days)] ['2011/01/10', '2012/02/20', '2012/03/30']
如果不需要任何循环,则必须手动“展开”对象。这几乎总是一件非常愚蠢的事情,这种情况也不例外,但只要你静态地知道事情的长度,就可以做到:
dates = [] dates.append('{}/{:02}/{:02}'.format(years[0], monthes[0], days[0])) dates.append('{}/{:02}/{:02}'.format(years[1], monthes[0], days[1])) dates.append('{}/{:02}/{:02}'.format(years[2], monthes[2], days[2]))
我在这里留下了一个复制粘贴和编辑错误供您调试,以确切地说明为什么“不要重复自己”是编程的基本原则,因此为什么“没有循环”是一个愚蠢的要求。你知道吗
或者,您可以随时将任何循环转换为递归调用,但是(a)在Python中这样做是非常愚蠢的,(b)大多数计算机科学家可能会说这仍然是一个循环。但如果你真的想:
def format_dates(years, monthes, days): if not years: return [] return (['{}/{:02}/{:02}'.format(years[0], monthes[0], days[0])] + format_dates(years[1:], monthes[1:], days[1:])) dates = format_dates(years, monthes, days)
map(lambda t: "/".join(map(str, t)), zip(years, monthes, days))
试试这个:
示例:
如果不需要任何循环,则必须手动“展开”对象。这几乎总是一件非常愚蠢的事情,这种情况也不例外,但只要你静态地知道事情的长度,就可以做到:
我在这里留下了一个复制粘贴和编辑错误供您调试,以确切地说明为什么“不要重复自己”是编程的基本原则,因此为什么“没有循环”是一个愚蠢的要求。你知道吗
或者,您可以随时将任何循环转换为递归调用,但是(a)在Python中这样做是非常愚蠢的,(b)大多数计算机科学家可能会说这仍然是一个循环。但如果你真的想:
相关问题 更多 >
编程相关推荐