2014-04-23 35 views
3

我有蟒蛇的列表:在列表中加入字符串

A = ['5', 'C', '1.0', '2.0', '3.0', 'C', '2.1', '1.0', '2.4', 'C', '5.4', '2.4', '2.6', 'C', '2.3', '1.2', '5.2'] 

我想加入A在AA方式,其中輸出如下:

5\n 
C 1.0 2.0 3.0\n 
C 2.1 1.0 2.4\n 
C 5.4 2.4 2.6\n 
C 2.3 1.2 5.2 

''.join(A)加入每一個串起來,'\n'.join(A)加入從新行開始的每個字符串。任何幫助?謝謝!

+1

將比第一其它各行始終以 'C' 開始? –

回答

8

可以遍歷,或者只是做這樣的事情:

' '.join(A).replace(' C', '\nC') 

空間替換字符串中是非常重要的,以防止一個領先的空行,如果第一個字符是一個「C」,並防止其他地方的尾隨空白。 (Thanks @aruisdante)

+3

可能是最簡單/最有效的,而不會增加顯着的複雜性。你應該在你的回答中注意,如果第一個字符是一個'''C''並且在其他地方的尾隨空格,那麼替換字符串中的空格對於防止前導空行非常重要。 – aruisdante

+0

如果數據不比發佈的示例更復雜,這是一個很好的答案。 –

+0

謝謝@Ryan P,aruisdante,g.d.d.c:.replace()適用於我的問題。 – Habib

2

我可能會使用一些itertools功能。

from itertools import izip 

def chunks(iterable, num=2): 
    it = iter(iterable) 
    return izip(*[it] * num) 

print '\n'.join([A[0]] + [' '.join(c) for c in chunks(A[1:], 4)]) 
0

沒有任何進口:

A = ['5', 'C', '1.0', '2.0', '3.0', 'C', '2.1', '1.0', '2.4', 'C', '5.4', '2.4', '2.6', 'C', '2.3', '1.2', '5.2'] 

B = [] 

j = 0 
for i, a in enumerate(A): 
    if a == 'C': 
     B.append(A[j:i]) 
     j = i 
B.append(A[j:]) 

print(("\n".join(" ".join(b) for b in B))) 
+0

感謝CoDEmanX – Habib

相關問題