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

如何在Python中按重复日期拆分潮汐数据嵌套列表?

按日期分组潮汐数据的解决方案

嘿,我来帮你搞定这个潮汐数据分组的问题!这里有两种实用的Python实现方式,你可以根据自己的需求选择:

方法一:使用字典分组(无需原列表有序)

这种方法最稳妥,不管你的原始数据是不是按日期排序的,都能正确把同一日期的记录归到一组:

tideData = [
    ['Thursday 4 January', 11.58, 0.38],
    ['Thursday 4 January', 16.95, 0.73],
    ['Friday 5 January', 6.48, 0.83],
    ['Friday 5 January', 12.42, 0.33],
    ['Saturday 6 January', 0.5, 0.02],
    ['Saturday 6 January', 7.18, 0.85],
    ['Friday 2 February', 23.52, 0.04]
]

# 初始化一个空字典来存储分组结果
grouped_tides = {}

# 遍历每条潮汐记录
for entry in tideData:
    date = entry[0]  # 提取日期作为分组键
    # 如果日期不在字典里,先创建对应的空列表
    if date not in grouped_tides:
        grouped_tides[date] = []
    # 将当前记录添加到对应日期的列表中
    grouped_tides[date].append(entry)

# 把字典的值转换成你需要的嵌套列表格式
tideData_grouped = list(grouped_tides.values())

# 输出结果看看
print(tideData_grouped)

运行这段代码后,你会得到符合要求的结构:

[
    [['Thursday 4 January', 11.58, 0.38], ['Thursday 4 January', 16.95, 0.73]],
    [['Friday 5 January', 6.48, 0.83], ['Friday 5 January', 12.42, 0.33]],
    [['Saturday 6 January', 0.5, 0.02], ['Saturday 6 January', 7.18, 0.85]],
    [['Friday 2 February', 23.52, 0.04]]
]

方法二:使用itertools.groupby(需原列表按日期排序)

如果你的原始数据已经是按日期顺序排列的,那么用itertools.groupby会更简洁:

from itertools import groupby

tideData = [
    ['Thursday 4 January', 11.58, 0.38],
    ['Thursday 4 January', 16.95, 0.73],
    ['Friday 5 January', 6.48, 0.83],
    ['Friday 5 January', 12.42, 0.33],
    ['Saturday 6 January', 0.5, 0.02],
    ['Saturday 6 January', 7.18, 0.85],
    ['Friday 2 February', 23.52, 0.04]
]

# 按日期分组,lambda函数用来提取分组的键(这里是每个条目的第一个元素:日期)
tideData_grouped = [list(group) for key, group in groupby(tideData, key=lambda x: x[0])]

print(tideData_grouped)

注意事项:

  • groupby是连续分组的,如果同一日期的记录在原列表中被其他日期隔开,会被分成不同的组。所以使用这个方法前,确保你的数据已经按日期排序好了。
  • 字典分组的方法没有这个限制,无论记录顺序如何,都能把同一日期的记录归到一起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:33:10