我有一个列表,其中包含字符串和数字的混合,例如
old_list = [23, 35, string, 42, string]
Run Code Online (Sandbox Code Playgroud)
我希望列表看起来像这样
new_list = [23,35,45]
Run Code Online (Sandbox Code Playgroud)
有一个简单的方法吗?
使用列表推导来过滤类型:
new_list = [value for value in old_list if isinstance(value, int)]
Run Code Online (Sandbox Code Playgroud)
这只是整数.如果需要支持任意数字(浮点数,复数,decimal.Decimal实例),请使用numbers.Number抽象类型:
from numbers import Number
new_list = [value for value in old_list if isinstance(value, Number)]
Run Code Online (Sandbox Code Playgroud)
isintance()如果只需要一个子集,您还可以给出要测试的元组元组; 例如:
new_list = [value for value in old_list if isinstance(value, (int, float))]
Run Code Online (Sandbox Code Playgroud)
将过滤整数和浮点值.