首页 > 解决方案 > 我的代码(Python、列表、字符串)有什么问题?

问题描述

我正在遍历长度为 x 的列表“a”,如果第 1 列有多个换行符,我想复制整行 x 并复制它,但第 1 列具有唯一值。

例如,如果我有一行并且第 1 列包含值(A、B、C),我想复制所有其他数据,并让它在第 1 列中只包含 1 个值。

steps = []
temp = a[x]
if a[x][1].count('\n') == 0:
    steps.append(temp)

else:
    split = a[x][1].split('\n')
    count = a[x][1].count('\n')+1
    for b in range(0, count):
        temp[1] = split[b]
        steps.append(temp)

列表“步骤”的预期结果:

xxx, A, yyy, zzz
xxx, B, yyy, zzz
xxx, C, yyy, zzz

实际结果:

xxx, C, yyy, zzz
xxx, C, yyy, zzz
xxx, C, yyy, zzz

标签: pythonstringlistloopssplit

解决方案


这个问题很难理解,因为您没有定义aor x

尽管如此,问题几乎可以肯定是您temp每次都修改和附加相同的字典。你需要复制它:

    new_temp = temp.copy()
    new_temp[1] = split[b]
    steps.append(new_temp)

推荐阅读