Python 3.x 比较两个字符串列表时出错

Python 3.x 比较两个字符串列表时出错,python-3.x,data-structures,Python 3.x,Data Structures,我正在尝试交换字符串列表中的元素。可能性的数量取决于列表的长度。当列表返回其原始形式时,交换将停止。我复制了这个列表,在while循环结束时,我创建了我的条件。问题是它没有打印所有的可能性,当我将列表以原始形式放入条件时,它工作得非常完美。我的问题是为什么后一种形式不起作用? 它必须工作,因为这个代码是更大代码的一部分 def swaps(): α=[“aba”、“bbb”、“bab”] β=α 打印(f“这是beta{beta}”) 打印(alpha) 尽管如此: 对于范围内的(0,len(a

我正在尝试交换字符串列表中的元素。可能性的数量取决于列表的长度。当列表返回其原始形式时,交换将停止。我复制了这个列表,在while循环结束时,我创建了我的条件。问题是它没有打印所有的可能性,当我将列表以原始形式放入条件时,它工作得非常完美。我的问题是为什么后一种形式不起作用? 它必须工作,因为这个代码是更大代码的一部分

def swaps():
α=[“aba”、“bbb”、“bab”]
β=α
打印(f“这是beta{beta}”)
打印(alpha)
尽管如此:
对于范围内的(0,len(alpha-1)):
α[a],α[a+1]=α[a+1],α[a]
打印(alpha)
#此表单有效:if alpha==[“aba”、“bbb”、“bab”]
如果α=β:
打破

此部分错误,您将对同一列表(非副本)的引用指定给beta值:

 alpha = ["aba","bbb", "bab"]
    beta = alpha 
换成

 alpha = ["aba","bbb", "bab"]
    beta = list(alpha)

此部分错误,您将对同一列表(不是副本)的引用指定给beta值:

 alpha = ["aba","bbb", "bab"]
    beta = alpha 
换成

 alpha = ["aba","bbb", "bab"]
    beta = list(alpha)

=
是赋值运算符。您可能打算使用,
=
,这是等式检查运算符:

if alpha == beta:
    break

=
是赋值运算符。您可能打算使用,
=
,这是等式检查运算符:

if alpha == beta:
    break

我把它贴错了,但它在我的代码中是==我把它贴错了,但它在我的代码中是==的。