Python 2.7 对于list和list.insert中的x,插入会导致无限循环
我不知道这是否是一个bug,但为什么这会导致一个无休止的循环Python 2.7 对于list和list.insert中的x,插入会导致无限循环,python-2.7,Python 2.7,我不知道这是否是一个bug,但为什么这会导致一个无休止的循环 >>> top_ports = [[1], [0.9], [0.8], [0.7], [0.6]] >>> a = 2 >>> for x in top_ports: ... if a > x[0]: ... top_ports.insert(0,a) ... 在循环中,您将在当前正在循环处理的列表中插入新项目。。您必须将代码更改为如下所示
>>> top_ports = [[1], [0.9], [0.8], [0.7], [0.6]]
>>> a = 2
>>> for x in top_ports:
... if a > x[0]:
... top_ports.insert(0,a)
...
在循环中,您将在当前正在循环处理的列表中插入新项目。。您必须将代码更改为如下所示
>>> result = []
>>> top_ports = [[1], [0.9], [0.8], [0.7], [0.6]]
>>> a = 2
>>> for x in top_ports:
... if a > x[0]:
... result.insert(0,a)
...
在循环中,您将在当前正在循环处理的列表中插入新项目。。您必须将代码更改为如下所示
>>> result = []
>>> top_ports = [[1], [0.9], [0.8], [0.7], [0.6]]
>>> a = 2
>>> for x in top_ports:
... if a > x[0]:
... result.insert(0,a)
...
在循环中,您将在当前正在循环处理的列表中插入新项目。。您必须将代码更改为如下所示
>>> result = []
>>> top_ports = [[1], [0.9], [0.8], [0.7], [0.6]]
>>> a = 2
>>> for x in top_ports:
... if a > x[0]:
... result.insert(0,a)
...
在循环中,您将在当前正在循环处理的列表中插入新项目。。您必须将代码更改为如下所示
>>> result = []
>>> top_ports = [[1], [0.9], [0.8], [0.7], [0.6]]
>>> a = 2
>>> for x in top_ports:
... if a > x[0]:
... result.insert(0,a)
...
x
表示top\u端口中的迭代元素
。但是当a>x[0]
为true
时,将向顶部端口添加一个元素:
top_ports.insert(0,a)
因此,由于顶部端口的长度不断增加,for循环永远不会终止
你也可以更详细地检查这一点。在您的示例中,打印x
始终会产生[1]
。这是因为当循环继续执行时,a
总是在添加,如下所示:
[2, 2, 2, ... [1], [0.9], [0.8], [0.7], [0.6]]
for循环永远无法真正跳转到下一个元素,因为这些值还会将另一个元素移开
希望这对你有帮助 x
表示top\u端口中的迭代元素。但是当a>x[0]
为true
时,将向顶部端口添加一个元素:
top_ports.insert(0,a)
因此,由于顶部端口的长度不断增加,for循环永远不会终止
你也可以更详细地检查这一点。在您的示例中,打印x
始终会产生[1]
。这是因为当循环继续执行时,a
总是在添加,如下所示:
[2, 2, 2, ... [1], [0.9], [0.8], [0.7], [0.6]]
for循环永远无法真正跳转到下一个元素,因为这些值还会将另一个元素移开
希望这对你有帮助 x
表示top\u端口中的迭代元素。但是当a>x[0]
为true
时,将向顶部端口添加一个元素:
top_ports.insert(0,a)
因此,由于顶部端口的长度不断增加,for循环永远不会终止
你也可以更详细地检查这一点。在您的示例中,打印x
始终会产生[1]
。这是因为当循环继续执行时,a
总是在添加,如下所示:
[2, 2, 2, ... [1], [0.9], [0.8], [0.7], [0.6]]
for循环永远无法真正跳转到下一个元素,因为这些值还会将另一个元素移开
希望这对你有帮助 x
表示top\u端口中的迭代元素。但是当a>x[0]
为true
时,将向顶部端口添加一个元素:
top_ports.insert(0,a)
因此,由于顶部端口的长度不断增加,for循环永远不会终止
你也可以更详细地检查这一点。在您的示例中,打印x
始终会产生[1]
。这是因为当循环继续执行时,a
总是在添加,如下所示:
[2, 2, 2, ... [1], [0.9], [0.8], [0.7], [0.6]]
for循环永远无法真正跳转到下一个元素,因为这些值还会将另一个元素移开
希望这对你有帮助 打印x
,您将知道原因。顺便说一句,你想做什么?print x
,你会知道原因的。顺便说一句,你想做什么?print x
,你会知道原因的。顺便说一句,你想做什么?print x
,你会知道原因的。顺便说一句,你想做什么?