为了账号安全,请及时绑定邮箱和手机立即绑定

计算范围内的时间

计算范围内的时间

慕仙森 2022-06-02 17:59:10
我正在尝试学习 Python,但我陷入了日期/时间例程中,我需要查找 05:00 到 11:30 之间发生的数据,但无论我如何处理,我都会遇到错误。我认为我需要解码时间,进行数学运算,然后对时间进行编码。我确信这是一件简单的事情,但我似乎无法完成它。例子:riders = [    ["rider_2391", 37_775370, -122.417571, 37_808601, -122.409807, "17:02:35", "$17.23", "UberX"],    ["rider_1879", 37.775222, 122.47109, 37.808080, -122.410002, "06:25:08",  "$22.25", "UberX"],    ["rider_98233", 37.784125, -122.471891, 37.763025, 122.478749, "11:48:55", "$6.28",  "Pool"]]def getRiderDate(riders):    ans = []    for rider in riders:        if rider[5] >= "05:00:00" and rider[5] <= "11:30:00":            ans.insert(len(ans), rider)    return ansprint(getRiderDate(riders)
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您的问题是循环控制错误:


   for rider in riders:                

            if rider[5] >= "05:00:00" and rider[5] <= "11:30:00":

                    ans.insert(len(ans), rider)

            return ans;

无论比赛结束,您检查一名骑手并返回。尝试这个:


def getRiderDate(riders):

    ans = []

    for rider in riders:                    

        if rider[5] >= "05:00:00" and rider[5] <= "11:30:00":

            ans.append(rider)


    return ans;

return在循环之后,而不是在里面。


输出:


[['rider_1879', 37.775222, 122.47109, 37.80808, -122.410002, '06:25:08', '$22.25', 'UberX']]



查看完整回答
反对 回复 2022-06-02
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我会使用 datetime 模块,主要是时间。还有以前的答案指出了什么(在循环内返回 ans 等)


import datetime


riders = [["rider_2391", 37_775370, -122.417571, 37_808601, -122_409807, "17:02:35", "$17.23", "UberX"],

          ["rider_1879", 37.775222, 122.47109, 37.808080, -122.410002, "06:25:08", "$22.25", "UberX"],

          ["rider_98233", 37.784125, -122.471891, 37.763025, 122.478749, "11:48:55", "$6.28", "Pool"]]



def getRiderDate(riders):

    ans = []

    t1 = datetime.time(hour=5)

    t2 = datetime.time(hour=11, minute=30)

    for rider in riders:

        t = datetime.datetime.strptime(rider[5], '%H:%M:%S').time()


        if t1 <= t <= t2:  # using chained comparison

            ans.insert(len(ans), rider)

    return ans



print(getRiderDate(riders))


查看完整回答
反对 回复 2022-06-02
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信