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

使用Python列表推导式将列表空元素替换为带编号的NaN值

实现方法

我们可以借助Python标准库itertools.count作为递增计数器,配合列表推导式快速实现需求,代码如下:

from itertools import count

tmp_text = ['col1','','col2','col3','','']
# 初始化从1开始的递增计数器
nan_seq = count(1)
# 列表推导式实现替换
tmp_text = [item if item else f'Nan{next(nan_seq)}' for item in tmp_text]

运行后tmp_text的输出结果为:
['col1', 'Nan1', 'col2', 'col3', 'Nan2', 'Nan3'],完全符合预期。

原理说明

  • itertools.count(1)是标准库提供的无限整数迭代器,每次调用next()方法就会返回下一个连续递增的整数,天然满足空字符串替换时的编号递增要求
  • 列表推导式内用三元表达式做判断:如果当前元素是非空字符串,直接返回原元素;如果是空字符串,就将其替换为带当前计数器值的Nan字符串。

如果不想引入导入依赖,也可以用可变对象实现计数器(可读性略低,适合不能导入库的场景):

tmp_text = ['col1','','col2','col3','','']
# 用列表存储计数器,利用列表可变性实现推导式内更新
cnt = [1]
tmp_text = [item if item else f'Nan{cnt[0] + (cnt.__setitem__(0, cnt[0]+1) or 0)}' for item in tmp_text]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:36:06