在 python 中的列表中插入一个字符
insert a character into a list in python
我有这个列表,在每个 space 之后我需要插入;这样我以后就可以根据我的 requirements.I 在我的代码中分隔列表,我尝试了 split() 和 join 方法,但发现它们仅适用于字符串,所以我该如何插入;而不是 space
['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']
在空白处用 .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']
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)
两种方法都会更新原始列表。
试试这个
import re
out_list = []
for word in in_list:
out_list.append(re.sub(' +',' ',word).replace(' \n','').replace(' ',';'))
print "Result",out_list
我有这个列表,在每个 space 之后我需要插入;这样我以后就可以根据我的 requirements.I 在我的代码中分隔列表,我尝试了 split() 和 join 方法,但发现它们仅适用于字符串,所以我该如何插入;而不是 space
['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']
在空白处用 .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']
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)
两种方法都会更新原始列表。
试试这个
import re
out_list = []
for word in in_list:
out_list.append(re.sub(' +',' ',word).replace(' \n','').replace(' ',';'))
print "Result",out_list