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

如何用Python循环从不同长度列表生成嵌套日期列表

生成嵌套日期列表的解决方案

问题描述

我有两个列表,分别名为start和time:

  • start包含3个datetime元素
  • time包含3个列表,长度分别为841、600、840

已能成功将start[0]与time[0]的每个元素相加生成一组日期,但遍历start和time时,希望得到一个包含3个对应长度子列表的嵌套列表,而非总长度为2281的扁平列表。

单组处理的成功代码

all_dates = []
for i in range(len(time)):
    all_dates.append(start + dt.timedelta(days = time[i]))

生成扁平列表的尝试代码

all_dates = []
for i in range(len(start)):
    for j in range(len(time[i])):
        all_dates.append(start[i] + dt.timedelta(days = time[i][j]))

解决代码

要生成嵌套结构,需要在外层循环中为每组数据创建独立的子列表,再将子列表加入总列表:

普通循环版本

import datetime as dt

all_dates = []
for i in range(len(start)):
    sub_dates = []  # 初始化当前组的子列表
    for day in time[i]:
        sub_dates.append(start[i] + dt.timedelta(days=day))
    all_dates.append(sub_dates)  # 将子列表加入总列表

列表推导式版本(更简洁)

import datetime as dt

all_dates = [
    [start[i] + dt.timedelta(days=day) for day in time[i]]
    for i in range(len(start))
]

运行后all_dates会是一个嵌套列表,其中包含3个子列表,长度分别为841、600、840,与time的子列表一一对应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:14:54