迭代时枚举打印多余的行

问题描述 投票:0回答:1

这是我正在为一个类编写的方法,由于某种原因,它返回的行数超出预期。下面的代码只是一个测试,这些值不具有代表性。

n = ""

dixoncider = ["a","f","f","g","f"]

for count,ele in enumerate(dixoncider,0):
    if count is len(dixoncider):
        break
    else:
        n = n + str(count) + ": " + str(ele) + "\n"
print(n)

输出错误:

0: a
1: f
2: f
3: g
4: f


python python-3.x loops iteration enumeration
1个回答
0
投票

如果您在末尾表示空行,那是因为您要在每个值后附加一个换行符(\n,所以输出的最后一个字符将是该换行符。

如果可以看到该字符,则具有此:

0: a\n
1: f\n
2: f\n
3: g\n
4: f\n
‍

并且想要这个:

0: a\n
1: f\n
2: f\n
3: g\n
4: f   <- No linebreak here.

如果要摆脱这一点,可以将print(n)替换为print(n[:-1])以跳过最后一个字符。

或者,仅在最后一次迭代中的所有循环中,有条件地将\n添加到循环中。

© www.soinside.com 2019 - 2024. All rights reserved.