我有一个对象“ a”,我想将其转换为列表,这样它没有任何字符,而是数字。虽然,类似的问题还涉及列表推导,但是我一直在寻找一种可以帮助我收集数字的函数方法。
>>> a
['(', '0', ',', ' ', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ',', ' ', '5', ',', ' ', '6', ',', ' ', '7', ',', ' ', '8', ',', ' ', '9', ')']
现在,我正在考虑分两个部分解决这个问题。 首先,我要删除所有的','和''(空格)。
为此,我编写了代码:
>>> for x in a :
if x == ',' or x == ' ':
del x
这根本不会更改列表。
此外,还有什么方法可以遍历每个对象并检查它是否为数字,以及是否不删除它。我认为这会简单得多。
此外,如果有解决此问题的更好方法,请提出建议。
答案 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']