2 回答
![?](http://img1.sycdn.imooc.com/533e4d5b0001d57502200203-100-100.jpg)
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']]
![?](http://img1.sycdn.imooc.com/54584cfb0001308402200220-100-100.jpg)
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))
添加回答
举报