[英]Reversing a list with 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())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.