如何将列表中的空字符串替换为指定值?以替换为"biz"为例
把列表中的空字符串替换为"biz"的几种实现方法
嘿,这个需求在日常开发里挺常见的,给你分享几个Python中实用的实现方式,按需选择就行:
1. 列表推导式(最推荐的简洁写法)
这是Python处理列表转换最优雅的方式之一,一行代码就能搞定,可读性也很强:
original_list = ["", "foo", "", "bar", ""] new_list = ["biz" if item == "" else item for item in original_list]
原理很简单:遍历原列表的每一个元素,判断如果是空字符串""就替换成"biz",否则保留原元素,最后生成一个新列表。
2. 原地修改原列表(适合内存敏感场景)
如果你不想创建新列表,想直接修改原有的列表,可以用索引循环的方式:
original_list = ["", "foo", "", "bar", ""] for idx in range(len(original_list)): if original_list[idx] == "": original_list[idx] = "biz"
这种方法不会额外占用新列表的内存,直接在原列表上更新元素,适合处理超大列表的时候用。
3. 函数式风格:map + lambda
如果你习惯函数式编程的写法,用map配合匿名函数lambda也能实现:
original_list = ["", "foo", "", "bar", ""] new_list = list(map(lambda x: "biz" if x == "" else x, original_list))
map会把lambda函数应用到原列表的每个元素上,最后用list()把map对象转换成列表。
小提示
如果你的列表里除了严格的空字符串"",还有可能存在空白字符串(比如" ")或者None这类空值,可以调整判断条件,比如用if not item.strip()来匹配所有空白内容,但如果只是需要替换严格的"",用上面的判断就足够啦。
内容的提问来源于stack exchange,提问作者THX1137
相关产品推荐
相关产品推荐

