Python 3.x 队列项目按原始顺序显示,然后按相反顺序显示队列项目的副本
这是我的节目 它给出了如下输出[1,2,3]适用于所有长度,即使是空列表。但我也想要一个相反的版本。。例如[1,2,3,3,2,1]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) #
我尝试使用.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])