Python 如何删除不是数字的列表项?
我有一个对象“a”,我想把它转换成一个列表,这样它就没有任何字符,只有数字。虽然,类似的问题涉及列表理解,但我正在寻找一种函数方法来帮助我收集数字Python 如何删除不是数字的列表项?,python,Python,我有一个对象“a”,我想把它转换成一个列表,这样它就没有任何字符,只有数字。虽然,类似的问题涉及列表理解,但我正在寻找一种函数方法来帮助我收集数字 >>> a ['(', '0', ',', ' ', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ',', ' ', '5', ',', ' ', '6', ',', ' ', '7', ',', ' ', '8', ',', ' ', '9', ')'] 现在,我想分两部分
>>> 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 sureisnumeric
test与你对“数字”字符串的概念一致。例如,这些不是数字:“+1”、“-1”、“0.0”。
[i for i in l if i.isnumeric()]
# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']