从迭代生成多行字符串

时间:2018-03-10 14:28:35

标签: python python-3.x

这可能是一个愚蠢的问题......我正在处理迭代后逐行生成的一些数据,并且我希望将结果存储在多行字符串中以便进一步处理。举个例子,让我告诉你:

is_string = """"""""
for i in range(1, 101):
    is_string += str(i)
print(is_string)

结果是:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100

但我希望它是一个多行字符串:

1
2
3
4
5
...
99
100

实现这一目标的正确方法是什么?

6 个答案:

答案 0 :(得分:4)

您可以按如下方式构建多行字符串:

multi_line = '\n'.join(map(str, range(1, 101)))
print(multi_line)

或迭代地:

multi_line = '\n'.join(str(i) for i in range(1, 101))

这些方法避免了字符串连接,如果可能的话应该避免它们,因为效率较低。

字符串有join()方法,它将字符串列表连接在一起,所以:

'\n'.join(['1', '2', '3'])

会给你一个字符串:

1\n2\n3

(其中\n是换行符)

答案 1 :(得分:2)

在此行is_string += str(i)中使用此is_string += str(i) + '\n'代替

答案 2 :(得分:1)

is_string = """"""""
for i in range(1, 101):
    is_string += str(i) + "\n"
print(is_string)

在每个元素后添加换行符。

答案 3 :(得分:1)

is_string = is_string + str(i) + '\n'
这是你在找什么?
小心处理'\ n',您可以使用类似is_string.split('\n')的内容来检索每个子字符串

答案 4 :(得分:1)

我认为您必须在每次插入结束时添加\n字符,这样才能解决您的问题:

is_string = """"""""
for i in range(1, 101):
    is_string += '{}\n'.format(str(i))
print(is_string)
希望,这有帮助!

答案 5 :(得分:0)

您可以在列表中执行此操作

is_string = []
for i in range(1, 101):
    is_string.append(i)

for i in is_string:
    print(i)

或作为字符串向每个..

添加新行\n
is_string = """"""""
for i in range(1, 101):
    is_string += str(i) + '\n'
    print(i)
相关问题