Python for循环不是从列表中迭代'0'

R3D*_*34K 2 python iteration for-loop list

Python for循环不是从列表中迭代'0'!

我试图创建一个代码将输入分成数字和字母(或运算符):

g='10+10+20x'

t=[]
for each_g in g:
    t.append(each_g)

lol=[]
a=[]
for each_t in t:
    if each_t.isdigit():
        lol.append(each_t)
        x = t.index(each_t)
        t.pop(x)
    else:
        lol = ''.join(lol)
        a.append(lol)
        a.append(each_t)
        lol=[]
print(a)
Run Code Online (Sandbox Code Playgroud)

期望的输出是:

['10', '+', '10', '+', '20', 'x']
Run Code Online (Sandbox Code Playgroud)

但它打印出来

['1', '+', '1', '+', '2', 'x']
Run Code Online (Sandbox Code Playgroud)

代替.

代码是否存在任何问题或是否有更好的解决方案使其按预期工作?

谢谢.

Mar*_*som 8

不要修改迭代的序列.pop在处理之前,每个人都会移动一个角色.

在这种情况下,因为t当你完成时你没有使用,所以根本不需要pop它 - 它是多余的.