Python 3.x 队列项目按原始顺序显示,然后按相反顺序显示队列项目的副本

Python 3.x 队列项目按原始顺序显示,然后按相反顺序显示队列项目的副本,python-3.x,list,queue,Python 3.x,List,Queue,这是我的节目 它给出了如下输出[1,2,3]适用于所有长度,即使是空列表。但我也想要一个相反的版本。。例如[1,2,3,3,2,1] 我尝试使用.reverse(),但仅反转队列[3,2,1]您可以创建副本,反转它并连接 myList = [1, 2, 3] print(myList) # [1, 2, 3] listToReverse = myList.copy() listToReverse.reverse() myList += listToReverse print(myList) #

这是我的节目

它给出了如下输出[1,2,3]适用于所有长度,即使是空列表。但我也想要一个相反的版本。。例如[1,2,3,3,2,1]
我尝试使用.reverse(),但仅反转队列[3,2,1]

您可以创建副本,反转它并连接

myList = [1, 2, 3]
print(myList)  # [1, 2, 3]
listToReverse = myList.copy()
listToReverse.reverse()
myList += listToReverse
print(myList) # [1, 2, 3, 3, 2, 1]

您从前面删除内容,在后面添加内容,并在列表的长度上添加内容:这只是旋转内容,产生相同的顺序

您可以对
d.rotate(len(d))
执行相同的操作,但结果列表的顺序与以前相同:
[1,2,3]-->[2,3,1]-->[3,1,2]-->[1,2,3]

使用

输出:

deque([1, 2, 3, 4, 4, 3, 2, 1])

mylist=mylist+mylist[::-1]
Hahaha我知道我忘记了python的一些优点!你的代码真的很好。。但是我不知道为什么它会给我[3,2,1,1,2,3]@mini看起来你正在反转
myList
,你可以试试@PatrickArtner提供的解决方案。谢谢。我知道为什么我的代码不起作用。我创建了一个queue1=Queue()并将其所有内容排队,然后将所有项目排队到原始队列。。现在它很好用。。非常感谢。
from collections import deque

def mirrDeque(d):
    c = deque(d)     #                     [1,2,3]
    c.reverse()      # reverse the copy    [3,2,1]
    c.extend(d)      # add the original    [3,2,1,1,2,3]
    c.rotate(len(d)) # rotate by len       [1,2,3,3,2,1]
    return c

k = deque([1,2,3,4])
print(mirrDeque(k))
deque([1, 2, 3, 4, 4, 3, 2, 1])