我有以下字符串,并希望分别以“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'或换行符替换)
我不确定还有什么可以尝试的。任何帮助将不胜感激 谢谢:))
答案 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