0

Lambda让我有点困惑,这就是我所拥有的:

lmb = lambda d: datetime.datetime.strptime(d["Date[G]"]+"-"+d["Time[G]"], "%d-%b-%Y-%H:%M:%S.%f")

如果我写一个这样的函数:

def time(d):
    t = datetime.datetime.strptime(d["Date[G]"]+"-"+d["Time[G]"], "%d-%b-%Y-%H:%M:%S.%f")
    return t.strftime("%d-%b-%Y-%H")

我可以return t.strftime("%d-%b-%Y-%H")

t.strftime("%d-%b-%Y-%H")我可以在我的 lambda 语句中嵌入类似的东西吗?

编辑

我试过这个:

lmb = lambda d: datetime.datetime.strptime(d["Date[G]"]+"-"+d["Time[G]"], "%d-%b-%Y-%H:%M:%S.%f").strftime("%d-%b-%Y-%H")

但它返回:

AttributeError:“str”对象没有属性“strftime”

使用该功能不会发生这种情况..

4

2 回答 2

3

是的,你可以这样做:

lmb = lambda d: datetime.datetime.strptime(d["Date[G]"]+"-"+d["Time[G]"], "%d-%b-%Y-%H:%M:%S.%f").strftime("%d-%b-%Y-%H")

我在 Python 2.7 上对此进行了测试:

>>> lmb = lambda d: datetime.datetime.strptime(d["Date[G]"]+"-"+d["Time[G]"], "%d-%b-%Y-%H:%M:%S.%f").strftime("%d-%b-%Y-%H")
>>> lmb({"Date[G]": "22-Apr-2012", "Time[G]": "07:23:24.123"})
'22-Apr-2012-07'
于 2012-05-01T03:16:45.673 回答
3

当然:

lmb = lambda d: datetime.datetime.strptime(d["Date[G]"]+"-"+d["Time[G]"], "%d-%b-%Y-`%H:%M:%S.%f").strftime("%d-%b-%Y-%H")

但是使用函数很快就有意义了。

于 2012-05-01T03:16:55.750 回答