试图附加一个包含不可变列表的列表[Python]

时间:2015-02-24 20:44:39

标签: string list python-2.7 for-loop char

所以我试图将一串字符附加到列表中,同时随着循环的进行更改列表中的最后一个字符。但是,每当我尝试更改字符列表时,所有先前的字符都将成为新字符。我的代码:

    string = list("xxx");

for x_ in  range(0, 10):

    print string

    string[2] = x_;
    lisMonthData.append(string);

我试图让第二个位置的最后一个角色计数。所以例如,我想要输出xx0,xx1,xx2,...,xx9。

相反,我得到xx9,xx9,xx9 .....

的输出

在增加最后一位数字时是否有更有效的方法来创建三个字符串?

1 个答案:

答案 0 :(得分:1)

问题是您将相同的列表的十个引用插入到列表列表中,当您修改其中一个列表时,您正在修改所有这些列表。

要解决此问题,您必须在修改列表之前或将列表添加到列表列表中时,在循环中的某个位置创建该列表的副本,例如< / p>

for x_ in  range(0, 10):
    string[2] = x_
    lisMonthData.append(string[:]) # slice [:] to create copy of entire list