【问题标题】:Trying to append a list with immutable list of chars [Python]试图用不可变的字符列表附加一个列表[Python]
【发布时间】:2015-04-26 16:06:05
【问题描述】:

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

    string = list("xxx");

for x_ in  range(0, 10):

    print string

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

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

相反,我得到的输出是 xx9,xx9,xx9.....

有没有更有效的方法来创建三个字符的字符串同时增加最后一位?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 2015-02-08
      • 2012-12-17
      • 1970-01-01
      • 2012-06-23
      • 2015-07-11
      相关资源
      最近更新 更多