如何在Python列表中替换None值为字符串'None'(无需索引)
几种替换列表中None为字符串'None'的方法
针对你给出的列表test_list = ['one','two',None],除了你用的lambda+列表推导的方法,还有这些简便实现方式:
精准替换None的列表推导(推荐)
这种方式只针对None值进行替换,不会误替换其他假值(比如空字符串''、数字0、布尔值False),比你的原方法更严谨:res = [i if i is not None else 'None' for i in test_list]使用map函数
用map遍历每个元素并处理,最后转成列表:res = list(map(lambda x: 'None' if x is None else x, test_list))如果需要复用逻辑,也可以把lambda换成普通函数:
def replace_none(x): return 'None' if x is None else x res = list(map(replace_none, test_list))生成器表达式转列表
和列表推导逻辑一致,但生成器本身更节省内存,适合处理大列表:res = list('None' if x is None else x for x in test_list)
另外提一句:你原来用的i or 'None'虽然能工作,但要注意它会把所有布尔值为False的元素都替换成'None'。如果你的列表里只有None需要替换,优先用上面带is not None判断的方法,避免意外替换其他合法数据。
内容的提问来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

