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)
期望的输出是:
['10', '+', '10', '+', '20', 'x']
但是它打印
['1', '+', '1', '+', '2', 'x']
相反。
代码是否有任何问题或更好的解决方案可以使其按预期工作?
谢谢。
最佳答案
不要修改您正在迭代的序列。在您可以处理之前,每个 pop
都会向下移动一个字符。
在这种情况下,因为您在完成时没有使用 t
,所以根本不需要 pop
- 它是多余的。
关于Python for 循环不从列表中迭代 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637155/