Python:删除列表中的数字

Python:删除列表中的数字,python,Python,我只是学习python。我这里有一个问题。它是简单的代码,但我不知道为什么结果出乎意料 这是我的密码: a=[1,2,3,4,6,7,'dd','ss','gg','oo',8] for i in a: for b in range(10): if i==b: a.remove(i) print a 我想删除a中的号码。我希望结果是a=['dd','ss','gg','00'] 但结果是: [2, 4, 7, 'dd', 'ss', 'gg'

我只是学习python。我这里有一个问题。它是简单的代码,但我不知道为什么结果出乎意料

这是我的密码:

a=[1,2,3,4,6,7,'dd','ss','gg','oo',8]

for i in a:
    for b in range(10):
        if i==b:
            a.remove(i)

print a
我想删除a中的号码。我希望结果是a=['dd','ss','gg','00'] 但结果是:

[2, 4, 7, 'dd', 'ss', 'gg', 'oo']
我不明白为什么结果是这样

有人能帮我吗?
谢谢大家!

尝试从列表中删除所有整数

      a = [x for x in a if not isinstance(x, int)]

永远不要在列表中迭代并从中删除。而是做一个新的列表,添加你想要保留的所有内容。好的,谢谢!我会记住的!你能告诉我为什么结果很奇怪吗?