如何删除不是数字的列表项?

时间:2019-05-07 09:35:14

标签: python

我有一个对象“ a”,我想将其转换为列表,这样它没有任何字符,而是数字。虽然,类似的问题还涉及列表推导,但是我一直在寻找一种可以帮助我收集数字的函数方法。

>>> a
['(', '0', ',', ' ', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ',', ' ', '5', ',', ' ', '6', ',', ' ', '7', ',', ' ', '8', ',', ' ', '9', ')']

现在,我正在考虑分两个部分解决这个问题。 首先,我要删除所有的','和''(空格)。

为此,我编写了代码:

>>> for x in a :
    if x == ',' or x == ' ':
        del x

这根本不会更改列表。

此外,还有什么方法可以遍历每个对象并检查它是否为数字,以及是否不删除它。我认为这会简单得多。

此外,如果有解决此问题的更好方法,请提出建议。

1 个答案:

答案 0 :(得分:6)

作为一般规则,您应避免在对其进行迭代(see why)时修改它,尽管在这种情况下,您的代码并未删除@rdas指出的任何元素。请改用list comprehension

[i for i in l if i.isnumeric()]
# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']