gpt4 book ai didi

python for if one liner

转载 作者:行者123 更新时间:2023-12-04 03:50:36 25 4
gpt4 key购买 nike

我有一个问题。

我想让我的代码简单易懂。

我正在尝试从数据 x 中获取下一个日期的值。

这是我的代码。有没有办法使用 lambda 或 map 来缩短它?

def nextDay(date,x,time=1):
res, c = None, 0

while c<time:
temp = iter(x)
for key in temp:
if key == date:
res = next(temp, None)
date = res
c+=1
return res

x = {'2020-01-11': 3.4, '2020-01-13': 4.1, '2020-02-02': 4.1 }
print(x[nextDay('2020-01-11', x, time=1)])

输出:

4.1

最佳答案

与其遍历日期 time 次并且总是只前进一个日期,不如搜索给定日期然后读取下一个 time 日期。

def nextDay(date, x, time=1):
it = iter(x)
date in it
for _ in range(time):
date = next(it, None)
return date

或用itertools.islice :

def nextDay(date, x, time=1):
it = iter(x)
date in it
return next(islice(it, time - 1, None), None)

关于python for if one liner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64473851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com