繁体   English   中英

使用 pop & insert 反转列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM