Python:使用特定字符开始每个换行符

时间:2014-01-07 17:46:11

标签: python

我有以下字符串,并希望分别以“1,2,3”开始每个新行。

mystring = "27 C
27 C
32 C
27 C
25 C"

(实际上可能有更多或更少的数字,但它们将始终是那个长度和格式)。我希望这个字符串看起来像这样;

mystring = "1, 27
2, 27
3, 32
4, 27
5, 25"

我尝试了各种各样的东西,但我只是设法得到“1”,在值之后(使用'C'或换行符替换)

我不确定还有什么可以尝试的。任何帮助将不胜感激 谢谢:))

3 个答案:

答案 0 :(得分:1)

尝试enumerate方法:

for i, s in enumerate(mystring.split('\n'), 1):
    print(i, s)

您可以轻松地根据您的目的进行调整。

答案 1 :(得分:1)

>> z = '\n'.join('{}, {}'.format(c+1, s) for c,s in enumerate(mystring.split('\n')))
>>> print(z)
1, 27 C
2, 27 C
3, 32 C
4, 27 C
5, 25 C

答案 2 :(得分:1)

这有效:

x = '\n'.join([str(i + 1) + ', ' + n for i,n in enumerate(mystring.split()[::2])])

print x

1, 27
2, 27
3, 32
4, 27
5, 25

在join方法的parens之间,有一个列表理解。 mystring.split()产生:  ['27', 'C', '27', 'C', '32', 'C', '27', 'C', '25', 'C']

然后切片[::2]获取该列表的每个第二个元素*(从第0开始)*结果:

['27', '27', '32', '27', '25']

列举此列表,例如:

for i in enumerate(mystring.split()[::2]):
    print i

(0, '27')
(1, '27')
(2, '32')
(3, '27')
(4, '25')

每个元组的第一个元素是int .. so:

str(i + 1) + ', ' + n for i, n 在上面列举的元组中,由'\n'通过join字符串方法加入...给出了最终结果:

    1, 27
    2, 27
    3, 32
    4, 27
    5, 25