所以我试图将一串字符附加到列表中,同时随着循环的进行更改列表中的最后一个字符。但是,每当我尝试更改字符列表时,所有先前的字符都将成为新字符。我的代码:
string = list("xxx");
for x_ in range(0, 10):
print string
string[2] = x_;
lisMonthData.append(string);
我试图让第二个位置的最后一个角色计数。所以例如,我想要输出xx0,xx1,xx2,...,xx9。
相反,我得到xx9,xx9,xx9 .....
的输出在增加最后一位数字时是否有更有效的方法来创建三个字符串?
答案 0 :(得分:1)
问题是您将相同的列表的十个引用插入到列表列表中,当您修改其中一个列表时,您正在修改所有这些列表。
要解决此问题,您必须在修改列表之前或将列表添加到列表列表中时,在循环中的某个位置创建该列表的副本,例如< / p>
for x_ in range(0, 10):
string[2] = x_
lisMonthData.append(string[:]) # slice [:] to create copy of entire list