列表和.pop()方法的行为:意外行为。 (CPython 3.6)

时间:2019-06-22 03:13:28

标签: python cpython

最初的目的是创建一个“列表弹出”机制,以根据列表的大小产生值。即,一个自我消耗清单。没有得到预期的行为,但是想知道幕后发生的事情。

甚至没有什么东西可以解决我的问题,也许已经有了答案,但是我什至不知道这是什么问题。 stackoverflow.com提供的许多建议解决方案都不相关。错误或功能?

>>> ab = []
>>> for i in range(10):
    ab.append(i)


>>> ab
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> def list_split(lst):
    ni = []
    for item in lst:
        ni.append(lst.pop(0))
    return ni

>>> ab
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> bc = list_split(ab)
>>> ab
[5, 6, 7, 8, 9]
>>> bc
[0, 1, 2, 3, 4]

我打算发生的事情是ab将其内容溢出到bc中,同时通过强制其在索引0弹出项目来保持顺序。如您所见,它显然将列表分为两部分,给出了前半部分从旧列表到新列表。

对于列表中的项目数,这与列表的索引有什么关系?

0 个答案:

没有答案