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

如何在Python中展平含空格分隔日期的字符串列表

解决Python日期列表的展平问题

你遇到的问题是因为itertools.chain.from_iterable会把字符串当成可迭代的字符序列来处理,所以才会把每个日期拆成单个字符。咱们换个思路:先把每个列表元素按空格分割成独立的日期字符串,再把这些分割后的小列表合并成一个大列表就可以了。

这里有几种简单高效的实现方式:

方法一:嵌套列表推导式(最简洁)

这是最直观也最Pythonic的写法,通过两层循环完成展平:

myList = ['05-06-2015', '01-07-2015', '01-07-2015 01-07-2016', '26-08-2015', '26-08-2016', '23-06-2015 26-08-2016 01-07-2015', '06-07-2015']
flatList = [date for item in myList for date in item.split()]
  • item.split()会将每个元素按空格分割成日期列表(单个日期的元素分割后还是只有一个元素的列表)
  • 外层循环遍历myList的每个元素,内层循环遍历分割后的每个日期,最终收集所有日期到新列表中。

方法二:使用itertools.chain

如果你还是想用itertools的话,只需要先把每个元素转换成日期列表,再用chain合并:

import itertools

myList = ['05-06-2015', '01-07-2015', '01-07-2015 01-07-2016', '26-08-2015', '26-08-2016', '23-06-2015 26-08-2016 01-07-2015', '06-07-2015']
flatList = list(itertools.chain.from_iterable(item.split() for item in myList))
  • item.split() for item in myList生成一个生成器,每个元素是分割后的日期列表
  • itertools.chain.from_iterable会把这些小列表依次连接起来,最后转成列表就得到了目标结果。

运行以上任意一种方法,你都会得到想要的展平列表:

['05-06-2015', '01-07-2015', '01-07-2015', '01-07-2016', '26-08-2015', '26-08-2016', '23-06-2015', '26-08-2016', '01-07-2015', '06-07-2015']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:19:49