在列表中连接字符串

时间:2014-04-23 15:43:56

标签: python list

我在python中有一个列表:

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

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)从新行开始连接每个字符串。对此有何帮助?谢谢!

3 个答案:

答案 0 :(得分:8)

你可以循环,或者只是做这样的事情:

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

如果第一个char为'C',则替换字符串中的空格对于防止前导空行非常重要,并防止在其他位置使用尾随空格。 (谢谢@aruisdante)

答案 1 :(得分: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)])

答案 2 :(得分: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)))