Python 替换列表中的 None 值

使用列表推导替换 Python 列表中的 None 值,例如 new_list_1 = ['' if i is None else i for i in my_list]. 列表推导应该返回一个不同的值,例如 如果列表项为 None,则为空字符串或 0,否则应返回列表项。

my_list = ['a', None, 'b', None, 'c', None, None]


# 👇️ replace None values in a list with empty string
new_list_1 = ['' if i is None else i for i in my_list]
print(new_list_1)  # 👉️ ['a', '', 'b', '', 'c', '', '']

# 👇️ replace None values in a list with 0
new_list_1 = [0 if i is None else i for i in my_list]
print(new_list_1)  # 👉️ ['a', 0, 'b', 0, 'c', 0, 0]

Python 替换列表中的 None 值

第一个示例将列表中的 None 值替换为空字符串,第二个示例将 None 替换为 0。

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

如果当前迭代的项目为 None,我们基本上遍历列表并返回一个空字符串,否则我们按原样返回该项目。

我们可以使用此方法将 None 值替换为任何其他值。

或者,我们可以使用 for 循环替换列表中的 None 值。

my_list = ['a', None, 'b', None, 'c', None, None]


for index, item in enumerate(my_list):
    if item is None:
        my_list[index] = '' # 👈️ replaces None with empty string


print(my_list)  # 👉️ ['a', '', 'b', '', 'c', '', '']

enumerate 函数接受一个可迭代对象并返回一个包含元组的枚举对象,其中第一个元素是索引,第二个元素是项目。

my_list = ['apple', 'banana', 'melon']

for index, item in enumerate(my_list):
    print(index, item)  # 👉️ 0 apple, 1 banana, 2 melon

在每次迭代中,我们检查该项是否为 None,如果是,我们更新特定索引处的列表项。