我有这个列表,其中我需要插入每个空格后;所以我将能够根据我的要求在我的代码中稍后分离列表。我已经尝试了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']
答案 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