Python 从一个列表中弹出并附加到另一个列表

Python 从一个列表中弹出并附加到另一个列表,python,Python,我想创建三个小列表(每个包含三个元素)和一个包含所有三个列表的大列表。 然后我想从第一个列表中弹出最后一个元素,并将其附加到第二个列表中,并将其作为最后一个元素 现在,添加后的结果如下所示: 香蕉、苹果、柠檬 我希望结果如下所示: 香蕉、苹果、柠檬 要从一个列表中简明地弹出,然后将推到另一个列表中,请执行以下操作: > list0 = [1, 2, 3] > list1 = [4, 5, 6] > list1.append(list0.pop(-1)) > list0 [

我想创建三个小列表(每个包含三个元素)和一个包含所有三个列表的大列表。 然后我想从第一个列表中弹出最后一个元素,并将其附加到第二个列表中,并将其作为最后一个元素

现在,添加后的结果如下所示:

香蕉、苹果、柠檬

我希望结果如下所示:

香蕉、苹果、柠檬


要从一个列表中简明地
弹出
,然后将
推到另一个列表中,请执行以下操作:

> list0 = [1, 2, 3]
> list1 = [4, 5, 6]
> list1.append(list0.pop(-1))
> list0
[1, 2]
> list1
[4, 5, 6, 3]

pop()
有一个参数
-1
,用于获取最后一个元素。

要从一个列表中简明地
pop
,并将
推送到另一个列表:

> list0 = [1, 2, 3]
> list1 = [4, 5, 6]
> list1.append(list0.pop(-1))
> list0
[1, 2]
> list1
[4, 5, 6, 3]

pop()

from collections import deque

class foodchain:
    def __init__(self, temp1=" ", temp2=" ", temp3=" "):
        self.temp1 = temp1
        self.temp2 = temp2
        self.temp3 = temp3
        self.first = deque(["banana", "apple", "lemon"])
        self.second = deque([self.temp1, self.temp2, self.temp3])
        self.last = deque([self.temp1, self.temp2, self.temp3])
        self.big_list = [self.first, self.second, self.last]
    def move21(self):
        self.first.appendleft(self.second.popleft())
        self.second.append(self.first.pop())
food = foodchain()
print(food.big_list)
food.move21()
print(food.big_list)

[deque(['banana', 'apple', 'lemon']), deque([' ', ' ', ' ']), deque([' ', ' ', ' '])]
[deque([' ', 'banana', 'apple']), deque([' ', ' ', 'lemon']), deque([' ', ' ', ' '])]

根据我的评论,我使用可爱的集合模块中的deque提出了这个解决方案

from collections import deque

class foodchain:
    def __init__(self, temp1=" ", temp2=" ", temp3=" "):
        self.temp1 = temp1
        self.temp2 = temp2
        self.temp3 = temp3
        self.first = deque(["banana", "apple", "lemon"])
        self.second = deque([self.temp1, self.temp2, self.temp3])
        self.last = deque([self.temp1, self.temp2, self.temp3])
        self.big_list = [self.first, self.second, self.last]
    def move21(self):
        self.first.appendleft(self.second.popleft())
        self.second.append(self.first.pop())
food = foodchain()
print(food.big_list)
food.move21()
print(food.big_list)

[deque(['banana', 'apple', 'lemon']), deque([' ', ' ', ' ']), deque([' ', ' ', ' '])]
[deque([' ', 'banana', 'apple']), deque([' ', ' ', 'lemon']), deque([' ', ' ', ' '])]

您确定代码会生成该结果吗?对我来说,它会产生
AttributeError
。请运行您发布的代码,并将代码复制粘贴到您的问题中(切勿重新键入)。这与问题无关,但如果您在实例变量中使用list(可变),则所有实例都将共享该变量。因此,您创建的下一个食物链将有第一个、第二个、biglist等相同的列表。顺便说一句,因为你想弹出项目,我建议你使用deque而不是列表。(如果您在
\uuuu init\uuuu
方法中重新创建变量,则情况并非如此,但实例变量是无意义的)您确定代码生成了该结果吗?对我来说,它会产生
AttributeError
。请运行您发布的代码,并将代码复制粘贴到您的问题中(切勿重新键入)。这与问题无关,但如果您在实例变量中使用list(可变),则所有实例都将共享该变量。因此,您创建的下一个食物链将有第一个、第二个、biglist等相同的列表。顺便说一句,因为你想弹出项目,我建议你使用deque而不是列表。(如果您在
\uuuu init\uuuu
方法中重新创建变量,则不会这样做,但实例变量是无意义的)抱歉,编辑了它。对,稍微有点混乱,但我希望它在元素被删除时始终显示空白(“”)removed@orgee我想您应该使用“-1”作为参数进入
pop()
尝试过了,结果仍然是[“香蕉”,“苹果”][,,,,,“柠檬”][,,,,,,]我想要的结果是[,“香蕉”,“苹果”[,,,,,,“柠檬”[,,,,”]我是新来的,不知道我是否把我的问题解释得很好!该代码实现了您在问题中想要的,另一件事是,您在示例中还隐式地说“我想在执行此操作时弹出第二个列表的第一个元素,并将其插入到第一个列表的末尾”。因此,您需要做的是
从集合导入deque
deque1.appendleft(deque2.popleft())
deque2.append(deque1.pop())
抱歉,编辑了它。对,稍微有点混乱,但我希望它在元素被删除时始终显示空白(“”)removed@orgee我想您应该使用“-1”作为参数进入
pop()
尝试过了,结果仍然是[“香蕉”,“苹果”][,,,,,“柠檬”][,,,,,,]我想要的结果是[,“香蕉”,“苹果”[,,,,,,“柠檬”[,,,,”]我是新来的,不知道我是否把我的问题解释得很好!该代码实现了您在问题中想要的,另一件事是,您在示例中还隐式地说“我想在执行此操作时弹出第二个列表的第一个元素,并将其插入到第一个列表的末尾”。因此,您需要做的事情是
从集合导入deque
deque1.appendleft(deque2.poplleft())
deque2.append(deque1.pop())