python for if one liner

python for if one liner,python,one-liner,Python,One Liner,我有个问题 我想让我的代码简单易懂 我试图从数据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 = ne

我有个问题

我想让我的代码简单易懂

我试图从数据
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)])

只需搜索给定日期,然后读取下一个
时间
日期,而不是浏览日期
时间
时间,并始终只前进一个日期

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


您能否给出输入和预期输出数据的示例?因此,当您使用
'2020-01-12'
搜索示例时,您希望代码崩溃?
def nextDay(date, x, time=1):
    it = iter(x)
    date in it
    for _ in range(time):
        date = next(it, None)
    return date
def nextDay(date, x, time=1):
    it = iter(x)
    date in it
    return next(islice(it, time - 1, None), None)