You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从字符串提取多值并计算Yelp餐厅时间表总时长

解决Yelp数据集餐厅营业时间时长计算问题

核心思路

把每个时间段的开店、闭店时间转换成小时为单位的数值,直接做减法得到当日时长,最后累加所有日期的时长即可。以下是Python实现代码:

代码实现

# 示例时间表字典
hours_dict = {
    'Friday': '8:0-23:0',
    'Monday': '8:0-22:0',
    'Saturday': '8:0-23:0',
    'Sunday': '8:0-22:0',
    'Thursday': '8:0-22:0',
    'Tuesday': '8:0-22:0',
    'Wednesday': '8:0-22:0'
}

total_duration = 0.0
daily_duration = {}

for day, time_str in hours_dict.items():
    # 拆分开店/闭店时间
    open_time, close_time = time_str.split('-')
    
    # 转换为小时+分钟的整数格式
    open_h, open_m = map(int, open_time.split(':'))
    close_h, close_m = map(int, close_time.split(':'))
    
    # 计算当日时长(转为小时单位)
    open_total = open_h + open_m / 60
    close_total = close_h + close_m / 60
    day_duration = close_total - open_total
    
    daily_duration[day] = day_duration
    total_duration += day_duration

# 输出结果
print("每日营业时长(小时):", daily_duration)
print("每周总营业时长(小时):", total_duration)

代码说明

  1. 拆分时间字符串:用split('-')把每个日期的时间范围拆成开店和闭店两个字符串,再用split(':')拆分小时和分钟。
  2. 时间数值转换:把分钟转换成小时的小数形式(比如30分钟=0.5小时),方便直接做减法运算。
  3. 时长计算与累加:闭店时间的总小时数减去开店时间的总小时数,得到当日时长,同时累加到总时长中。

特殊情况处理

如果遇到跨天营业时间(比如22:0-2:0),需要在闭店时间的数值上加上24小时再计算,避免出现负数结果:

# 跨天情况的修正逻辑
if close_total < open_total:
    close_total += 24
day_duration = close_total - open_total

内容的提问来源于stack exchange,提问作者Tegh Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:27:18