尝试查找问题已经5个小时了,但无法确定为什么for循环for fn in L无限运行。

L=[]
N=int(raw_input())
for i in range(0,N):
    L.append(list(raw_input().split()))
print L

for fn in L:
    if 'insert'==fn[0]:
        L.insert(int(fn[1]),int(fn[2]))
    elif 'append'==fn[0]:
        L.append(int(fn[1]))
    elif 'remove'==fn[0]:
        L.remove(int(fn[1]))
    elif 'pop'==fn[0]:
        L.pop(int(fn[1]))
    elif 'index'==fn[0]:
        L.index(int(fn[1]))
    elif 'count'==fn[0]:
        L.count(int(fn[1]))
    elif 'sort'==fn[0]:
        L.sort()
    elif 'reverse'==fn[0]:
        L.reverse()
    else :
        print  L


提供给列表的输入:

12
insert 0 5
insert 1 10
insert 0 6
print
remove 6
append 9
append 1
sort
print
pop
reverse
print

最佳答案

您正在循环中更改列表。结果将是不可预测的。您可以改为在列表的一部分上进行迭代:

for fn in L[:]:
    # your code here
    pass


这样,当浅表副本(切片)中的项目用尽时,循环终止。

关于python - For循环运行无限python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37731695/

10-13 07:00