python - 使用 pop & insert 反转列表
问题描述
有什么想法为什么要reverse_1
反转输入列表但reverse_2
不反转?
我在调试器中都运行过,问题似乎是reverse_2
没有返回反向列表。
def reverse_1(seq):
return_list = list()
for i in range(len(seq)):
return_list.append(seq.pop())
seq.extend(return_list)
def reverse_2(seq):
length = len(seq)
for i in range(length):
seq.insert(0, seq.pop())
example = [1, 2, 3, 4, 5, 6]
reverse_1(example) #OUTPUT - [6, 5, 4, 3, 2, 1]
reverse_2(example) #OUTPUT - [1, 2, 3, 4, 5, 6]
解决方案
.insert(0, n)
将插入n
到列表的前面,因此在第一次迭代中它会弹出6
并在开头插入:
[6, 1, 2, 3, 4, 5]
第二次迭代将弹出5
并类似地插入它:
[5, 6, 1, 2, 3, 4]
一个可能的解决方案是将行更改为:
seq.insert(i, seq.pop())
推荐阅读
- python - 在搅拌机中渲染不会对相机和光线方向进行旋转更新
- java - 如何使用 Micronaut 在 mongoDB 中创建 TextFree 搜索
- image - 当我们打开相机或图库以在 react native 中获取照片时,应用程序会重新启动
- wordpress - LetsEncrypt 没有 DNS 验证?
- python - 尝试在 Python 中使用 PySimpleGUI 通过 openpyxl 读取 excel 单元格
- model - 如何从持久存储构建域模型?#DDD
- python - 我刚刚开始学习使用 selenium 进行网络抓取。我需要登录本地网站并双击某些项目
- java - Java 尝试使用 For 循环遍历 Int ArrayList 并添加到 Hashset 问题
- html - 如何在 CSS 中设置 li、span 和 a 元素的样式
- hadoop - HDP sanbox:yum install 抛出 403 错误