打印列表x次并更改其元素

2024-03-29 09:42:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为Python中的这个示例而挣扎。 我有一个由一些文本组成的列表: x=[“第1行\n”,“第2行\n”,“第3行\n”] 然后我想修改它的元素并打印列表3次。这是我的代码:

for y in range(3):
    for n,i in enumerate(x):
        if i == 'line1\n':
            x[n] = 'line1' + str(y) + '\n'
        if i == 'line2\n':
            x[n] = 'line2' + str(y) + '\n'
        if i == 'line3\n':
            x[n] = 'line3' + str(y) + '\n'
    print(''.join(x))

这给了我:

第10行

第20行

第30行

三次。但我想得到的是:

第10行

第20行

第30行

那么

第11行

第21行

第31行

等等

你知道我怎样才能得到这个结果吗?我做错什么了?谢谢


Tags: 代码in文本元素示例列表forif
3条回答

如果我对你所要达到的目标理解正确,这就是解决方案:

我把str(y)改成了str(n),这是错误计数的根源。你知道吗

x = ["line1\n", "line2\n", "line3\n"]

for n, i in enumerate(x):
    if i == 'line1\n':
        x[n] = 'line1' + str(n) + '\n'
    if i == 'line2\n':
        x[n] = 'line2' + str(n) + '\n'
    if i == 'line3\n':
        x[n] = 'line3' + str(n) + '\n'

for y in range(3):
    print(''.join(x))

但是这个代码没有什么意义,因为我不知道上下文,所以这可能不是你想要的。你知道吗

枚举在第一次正确运行时,将所有行更改为

 x[0] = line10\n
 x[1] = line20\n
 x[2] = line30\n

如果你的陈述不再适用。他们还在找if x[0] == 'line1\n':,但现在x[0] = line10\n

你能不能不这样试着用它们在数组中的位置来检查它们?你知道吗

for y in range(3):
    for n in enumerate(x):
        if n == 0
            x[n] = 'line1' + str(y) + '\n'
        if n == 1
            x[n] = 'line2' + str(y) + '\n'
        if n == 2
            x[n] = 'line3' + str(y) + '\n'
    print(''.join(x))
for y in range(3):
    for n,i in enumerate(x):
        if i == 'line1\n':
            x[n] = 'line1' + str(y) + '\n'
        if i == 'line2\n':
            x[n] = 'line2' + str(y) + '\n'
        if i == 'line3\n':
            x[n] = 'line3' + str(y) + '\n'

将每行设置为

x[n] = 'line1' + 0 + '\n'

x[n] = 'line2' + 0 + '\n'

x[n] = 'line3' + 0 + '\n'

然后,当您第二次回环时,所有行都将不满足您要检查的条件。你知道吗

相关问题 更多 >