在python中的一个列表中插入一个字符

时间:2015-03-04 09:54:20

标签: python list replace

我有这个列表,其中我需要插入每个空格后;所以我将能够根据我的要求在我的代码中稍后分离列表。我已经尝试了split()和join方法,但发现它只适用于字符串,所以我如何插入;而不是空间

 ['48998.tyrone-cluster       gic1_nwgs        mbupi           18:45:44 R qp32           \n', 
'48999.tyrone-cluster       gic2_nwgs        mbupi                  0 Q batch          \n',  
'49005.tyrone-cluster       ...01R-1849-01_2 mcbkss          00:44:23 R qp32           \n',
'49032.tyrone-cluster       gaussian_top.sh  chemraja               0 Q qp32           \n', 
'49047.tyrone-cluster       jet_egrid        asevelt         312:33:0 R qp128          \n'] 

输出必须像这样

['48998.tyrone-cluster;gic1_nwgs;mbupi;18:45:44;R;qp32', 
'48999.tyrone-cluster;gic2_nwgs;mbupi;0;Q;batch',  
'49005.tyrone-cluster;...01R-1849-01_2;mcbkss;00:44:23;R;qp32',
'49032.tyrone-cluster;gaussian_top.sh;chemraja;0;Q;qp32', 
'49047.tyrone-cluster;jet_egrid;asevelt;312:33:0;R;qp128']

3 个答案:

答案 0 :(得分:2)

在空格上使用.split()拆分,并使用';'作为分隔符加入:

>>> transformed = [ ';'.join(item.split()) for item in original ]
>>> pprint(transformed)
['48998.tyrone-cluster;gic1_nwgs;mbupi;18:45:44;R;qp32',
 '48999.tyrone-cluster;gic2_nwgs;mbupi;0;Q;batch',
 '49005.tyrone-cluster;...01R-1849-01_2;mcbkss;00:44:23;R;qp32',
 '49032.tyrone-cluster;gaussian_top.sh;chemraja;0;Q;qp32',
 '49047.tyrone-cluster;jet_egrid;asevelt;312:33:0;R;qp128']

答案 1 :(得分:0)

在空格上

split然后使用;重新加入:

l[:] = [";".join(line.split())for line in l]
print(l)

['48998.tyrone-cluster;gic1_nwgs;mbupi;18:45:44;R;qp32', '48999.tyrone-cluster;gic2_nwgs;mbupi;0;Q;batch', '49005.tyrone-cluster;...01R-1849-01_2;mcbkss;00:44:23;R;qp32', '49032.tyrone-cluster;gaussian_top.sh;chemraja;0;Q;qp32', '49047.tyrone-cluster;jet_egrid;asevelt;312:33:0;R;qp128']

或使用enumerate和for循环:

for ind, line in enumerate(l):
    l[ind] = ";".join(line.split())
print(l)

两种方法都会更新原始列表。

答案 2 :(得分:0)

尝试这个

import re
out_list = []
for word in in_list:
  out_list.append(re.sub(' +',' ',word).replace(' \n','').replace(' ',';'))
print "Result",out_list