如果在 Python 中不是 None,则追加到列表
Append to List if not None in Python
仅当不是 None 时才将值附加到列表:
- 检查该值是否不是
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'] # ----------------------------- # ✅ 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
始终使用
is
or来完成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()
方法迭代列表的副本。
如果您尝试在迭代时从原始列表中删除元素,您可能会遇到难以定位的错误。