python - 列表和 .pop() 方法的行为:意外行为。(CPython 3.6)
问题描述
最初的意图是创建一个“列表弹出”机制来根据列表的大小产生值;即,一个自耗尽的列表。没有得到预期的行为,但想知道幕后发生了什么。
没有看到任何与我的问题很接近的东西,也许已经有了答案,但我什至不知道这是什么类别的问题。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 处弹出一个项目来保持顺序。如您所见,它显然将列表分成两部分,给出旧的前半部分列表到新列表。
对于列表中的项目计数,这与列表的索引有什么关系?
解决方案
推荐阅读
- javascript - JS从文件txt读取数据到数组
- python - 每次循环时如何创建一个新列表并在将元素附加到它后重复循环?
- powerbi - Power BI 数据集数据源凭据
- python - python - 如何根据python中的空格将列表中的字符串拆分为多个字符串?
- ios - 如何在自定义 UITableViewCell 中使用标准控件,如删除按钮或披露指示器?
- java - 自定义查询参数传递 - Spring boot
- vue.js - Vue-i18n:如何保存选定的语言环境
- python - 如何在python中构建基于知识图谱的问答程序
- ios - 如何在swift中从包含多个()的字符串中删除外部()
- sql - 在sql server中将列转置为行