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

Python 如何删除不是数字的列表项?,python,Python,我有一个对象“a”,我想把它转换成一个列表,这样它就没有任何字符,只有数字。虽然,类似的问题涉及列表理解,但我正在寻找一种函数方法来帮助我收集数字 >>> a ['(', '0', ',', ' ', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ',', ' ', '5', ',', ' ', '6', ',', ' ', '7', ',', ' ', '8', ',', ' ', '9', ')'] 现在,我想分两部分

我有一个对象“a”,我想把它转换成一个列表,这样它就没有任何字符,只有数字。虽然,类似的问题涉及列表理解,但我正在寻找一种函数方法来帮助我收集数字

>>> a
['(', '0', ',', ' ', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ',', ' ', '5', ',', ' ', '6', ',', ' ', '7', ',', ' ', '8', ',', ' ', '9', ')']
现在,我想分两部分来解决这个问题。 首先,我想删除所有的“,”和“”(空格)

为此,我编写了代码:

>>> for x in a :
    if x == ',' or x == ' ':
        del x
这根本不会改变列表

还有,是否有任何方法可以迭代每个对象并检查它是否是一个数字,如果不是,则删除它。我想这会简单得多


此外,如果有更好的方法来解决这个问题,请建议。

作为一般规则,您应该避免在迭代iterable()时修改iterable,尽管在这种情况下,您的代码不会像@rdas指出的那样删除任何元素。请改为使用:


del
语句的可能重复项无法删除变量所指向的内容,因为它只删除第一级引用。“删除一个名称会从本地或全局名称空间中删除该名称的绑定”,因此您使用
del x
所做的只是删除
x
的绑定,而不是
x
所指向的东西。这非常简单。非常感谢。@VinamraBali不客气!别忘了你可以向上投票/接受,请看是,但别忘了接受:),请看我共享的链接(投票选项下的绿色勾号)@vinamrabaliake sure
isnumeric
test与你对“数字”字符串的概念一致。例如,这些不是数字:“+1”、“-1”、“0.0”。
[i for i in l if i.isnumeric()]
# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']