2014-09-22 131 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