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

如何将'dd.mm.yyyy hh'格式字符串列表拆分为四个整数列表?

解决方案

你可以通过遍历时间字符串列表,对每个元素调用解析逻辑,将结果分别收集到四个列表中。另外,也可以优化解析方式,避免依赖固定字符串索引,让代码更稳健。

方法一:基于你现有函数的实现

直接复用你写好的解析函数,遍历列表逐个处理:

# 保留你已有的解析函数
def getYear(timeStampStr):
    yearStr = timeStampStr[6:10]
    return int(yearStr)
def getMonth(timeStampStr):
    monthStr = timeStampStr[3:5]
    return int(monthStr)
def getDay(timeStampStr):
    dayStr = timeStampStr[0:2]
    return int(dayStr)
def getHour(timeStampStr):
    # 兼容带冒号的小时格式(如'00:00')
    hourStr = timeStampStr[11:13]
    return int(hourStr)

# 你的时间字符串列表
time_stamps = ['01.11.2020 00:00', '01.11.2020 01:00', '01.11.2020 02:00']

# 初始化四个空列表存储结果
years = []
months = []
days = []
hours = []

# 遍历列表,逐个解析并收集数据
for ts in time_stamps:
    years.append(getYear(ts))
    months.append(getMonth(ts))
    days.append(getDay(ts))
    hours.append(getHour(ts))

# 查看结果
print("年份列表:", years)   # [2020, 2020, 2020]
print("月份列表:", months)  # [11, 11, 11]
print("日期列表:", days)    # [1, 1, 1]
print("小时列表:", hours)   # [0, 1, 2]

方法二:优化解析逻辑(更稳健)

固定索引的方式容易因格式微小变化失效,比如小时部分不带冒号时索引偏移,用字符串分割的方式更通用:

def parse_time(time_str):
    # 分割日期和时间部分
    date_part, time_part = time_str.split(' ')
    # 分割日期为日、月、年
    day_str, month_str, year_str = date_part.split('.')
    # 处理小时(兼容带/不带冒号的格式)
    hour_str = time_part.split(':')[0]
    # 返回四个整数结果
    return int(year_str), int(month_str), int(day_str), int(hour_str)

time_stamps = ['01.11.2020 00:00', '01.11.2020 01:00', '01.11.2020 02:00']

years = []
months = []
days = []
hours = []

for ts in time_stamps:
    y, m, d, h = parse_time(ts)
    years.append(y)
    months.append(m)
    days.append(d)
    hours.append(h)

print(years)   # [2020, 2020, 2020]
print(months)  # [11, 11, 11]
print(days)    # [1, 1, 1]
print(hours)   # [0, 1, 2]

方法三:用列表推导式简化代码

如果想让代码更简洁,可结合列表推导式和zip一次性生成四个列表:

def parse_time(time_str):
    date_part, time_part = time_str.split(' ')
    day_str, month_str, year_str = date_part.split('.')
    hour_str = time_part.split(':')[0]
    return int(year_str), int(month_str), int(day_str), int(hour_str)

time_stamps = ['01.11.2020 00:00', '01.11.2020 01:00', '01.11.2020 02:00']

# 用zip批量拆分解析结果
years, months, days, hours = zip(*[parse_time(ts) for ts in time_stamps])

# 将元组转换为列表(zip默认返回元组)
years = list(years)
months = list(months)
days = list(days)
hours = list(hours)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:10:44