2014-09-22 253 views
0

,我有以下格式的一些数据:替换换行符每三个逗号

var = 1,2,3,4,5,6,7,8,9 

如果我使用下面的代码:

var = var.replace(',', '\n') 
print var 

我得到的输出是这样的:

1 
2 
3 
4 
5 
6 
7 
8 
9 

我想得到的是这样的输出:

123 
456 
789 

这将涉及只用换行符替换每三个逗号。有没有办法做到这一点?我看过这里的其他一些问题,他们似乎并没有正确地解决我想要做的事情。

感谢

+0

@vittore我在这个问题提供的代码。谢谢 – gdogg371 2014-09-22 15:40:21

回答

4
var = "1,2,3,4,5,6,7,8,9" 

spl = var.split(",") # split into list of individual items 

print "\n".join(["".join(spl[i:i+3]) for i in range(0,len(spl),3)]) # join into chunks of 3 and add a newline to separate the output 
123 
456 
789 

为了保持逗号:

"\n".join([",".join(spl[i:i+3]) for i in range(0,len(spl),3)]) 
+0

工作很好,谢谢。 – gdogg371 2014-09-22 16:52:48

+0

实际上只是发现了一些东西。需要添加什么,以便每行的输出保留未被换行符替换的逗号?所以如果你明白我的意思,输出将是1,2,3 \ n4,5,6 \ n7,8,9。谢谢 – gdogg371 2014-09-22 17:01:26

+0

@ user3045351,我加了如何保留逗号 – 2014-09-22 17:02:58

3

不要使用replace,尝试var.split(',')和获取列表。

从那里,把它分成三块,然后在这些块之间放一个换行符。

我将离开实际的编码给你。

+0

,这对我的真实数据来说太长了,因为会有几十个元素。肯定有一个简单的方法或者用python替换每个字符的第n个实例? – gdogg371 2014-09-22 15:59:33

+0

有办法使这个不长的啰嗦根本。考虑'for'循环和列表理解。 – 2014-09-22 16:00:42