如果在 Python 中不是 None,则追加到列表

如果在 Python 中不是 None,则追加到列表

Append to List if not None in Python

仅当不是 None 时才将值附加到列表:

  1. 检查该值是否不是None.
  2. 如果满足条件,则使用该list.append()方法将值添加到列表中。
主程序
my_list = [] value = 'apple' # ✅ append to list only if not None if value is not None: my_list.append(value) print(my_list) # 👉️ ['apple'] # ----------------------------- # ✅ filter out all None values from list my_list = ['apple', None, 'banana', None] new_list = [i for i in my_list if i is not None] print(new_list) # 👉️ ['apple', 'banana']

我们首先检查该值是否不是None

is当您需要检查变量是否存储
None值时,您应该使用运算符。

当我们使用 时is,我们检查对象的身份。

pep 8 风格指南
提到与单例的比较
应该
None始终使用
isor来完成is not,而不是相等运算符。

当您需要检查一个值是否等于另一个值时,请使用相等运算符(等于==和不等于),例如 !='abc' == 'abc'

如果值不是None,我们使用list.append()方法添加它。

主程序
my_list = [] value = 'apple' # ✅ append to list only if not None if value is not None: my_list.append(value) print(my_list) # 👉️ ['apple']

list.append
()
方法将一个项目添加到列表的末尾。

该方法None在改变原始列表时返回。

如果您有一个包含None值的列表并且需要将它们过滤掉,请使用列表理解。

主程序
my_list = ['apple', None, 'banana', None] new_list = [i for i in my_list if i is not None] print(new_list) # 👉️ ['apple', 'banana']
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们检查当前项目是否存在None并返回结果。

新列表不包含任何None值。

列表理解不会改变原始列表,它会返回一个新列表。

如果您需要None从原始列表中删除值,请使用for
循环。

主程序
my_list = ['apple', None, 'banana', None] for item in my_list.copy(): if item is None: my_list.remove(item) print(my_list) # 👉️ ['apple', 'banana']

我们使用该list.copy()方法来获取列表的副本。

list.copy方法返回调用该方法的对象的浅表副本

这是必要的,因为我们不允许在遍历列表时从列表中删除元素。

但是,我们可以遍历列表的副本并从原始列表中删除元素。

在每次迭代中,我们检查当前项目是否是None,并使用该
list.remove()方法删除匹配的元素。

list.remove()方法从列表中

删除第一项,其值等于传入的参数。

remove()方法改变原始列表并返回None

在迭代时从列表中删除项目时要注意的最重要的事情是使用list.copy()方法迭代列表的副本。

如果您尝试在迭代时从原始列表中删除元素,您可能会遇到难以定位的错误。

发表评论