首页 > 解决方案 > 如何在 python 中将 lambda 用于日期时间参数

问题描述

这是我的代码:

for current, next in zip(xlist, ylist):
    start = datetime.strptime(current["id"], '%Y-%m-%d').date()
    next_start = datetime.strptime(next["id"], '%Y-%m-%d').date()

我想知道是否有一种方法可以使用 lambda 在一行代码中编写 start 和 next_start 。我尝试了以下代码,但它不正确:

for current, next in zip(xlist, ylist):
     start, next_start = lambda X:datetime.strptime(X, '%Y-%m-%d').date()

标签: python

解决方案


为什么要在一行中声明它们?它们是两个不同的日期,需要两个不同的变量。

您可以将 lambda 函数设置为:

set_date = lambda x: datetime.strptime(x, "%Y-%m-%d").date()

start = set_date(current)

但是 next_start 需要一个完全不同的变量来设置日期。

此外,start, next_start = lambda X:datetime.strptime(X, '%Y-%m-%d').date() 此语法导致 start 和 next_start 具有相同的值。

对我来说,看起来我们必须不遗余力地强制“Pythonic”模式,并将看似简单的解决方案变成不可读的东西。


推荐阅读