Skip to main content
 首页 » 编程设计

python之将列表清空到新列表中

2025年05月04日7498°冷暖

我正在尝试创建一个函数,当一个列表为空时,第二个列表将以相反的顺序清空到空列表中。现在,我尝试这样做:

a = [1,2,3,4] 
b = [] 
def a_to_b(a, b): 
    if not a: 
        print('a:',a)         
        print('b:',b) 
        for c in b: 
            a.append(c) 
            b.remove(c) 
        print('a:',a) 
        print('b:',b) 
        return True 
    else: 
        top = a.pop() 
        b.append(top) 
        print('a:',a) 
        print('b:',b) 
        return True 

我希望它在每次运行之后:

1) a = [1,2,3] 
   b = [4] 
2) a = [1,2] 
   b = [4,3] 
3) a = [1] 
   b = [4,3,2] 
4) a = [] 
   b = [4,3,2,1] 
5) a = [1,2,3,4] 
   b = [] 

但是在第五次运行之后它给了我

a = [4,2] 
b = [3,1] 

而且我不明白为什么它只适用于 b 中的所有其他数字。

请您参考如下方法:

这应该有效

a = [1,2,3,4] 
b = [] 
对于范围内的我(len(a)): 
    b.append(a[-1]) 
    a.pop() 
    打印 a,b