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

Python 2.7列表空元素替换问题:用相邻日期填充空值

解决Python 2.7列表空元素替换为最近日期的问题

嘿,我来帮你搞定这个列表替换的问题!你的需求很明确——把列表里的空字符串替换成前面最近的非空日期,但你之前的代码总是取列表第一个元素,自然没法区分不同时间段的空元素啦。

问题分析

你原来的代码:

for tim in time_d:
    if tim =='':
        print time_d[0]

这里不管哪个空元素都用time_d[0](也就是周一的日期),但实际上周二到周三之间的空元素应该对应周二的日期,所以核心是要跟踪当前最新的有效日期,而不是固定用第一个元素。

正确实现代码

下面是针对Python 2.7的解决方案,我们用一个变量记录当前的有效日期,遍历列表时动态更新:

# 你的原始列表
time_d = [u'Monday 30 March', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'Tuesday 31 March', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'Wednesday 1 April', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'', u'']

current_date = None
processed_list = []

for item in time_d:
    # 遇到非空的日期,更新当前日期并加入结果
    if item != u'':
        current_date = item
        processed_list.append(item)
    else:
        # 空元素则用最近的有效日期替换(如果有的话)
        if current_date is not None:
            processed_list.append(current_date)
        else:
            # 处理列表开头就有空元素的情况(可选,这里保留空)
            processed_list.append(item)

# 打印结果看看
for elem in processed_list:
    print elem

代码说明

  • current_date:用来存储最近一次遇到的非空日期,遍历过程中会动态更新
  • 遍历每个元素时,非空元素直接更新current_date并加入结果;空元素则复用current_date
  • 额外处理了列表开头为空的情况(如果有的话,你可以根据需求调整,比如设默认日期)

这样处理后,周一到周二之间的空元素都会变成Monday 30 March,周二到周三之间的变成Tuesday 31 March,完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 07:28:13