我有一份名单。我能够在内部列表中生成大图,如下所示:
[(“细菌”、“农业”)、(“农业”、“土壤”)、(“土壤”、“前期”)、(“前期”、“sampl”)、(“细菌”、“农业”)、(“农业”)、(“农业”、“土壤”)、(“土壤”、“土壤”)、(“土壤”、“土壤”)、(“土壤”、“土壤”)、(“土壤”、“土壤”)、(“土壤”、“土壤”)、(“土壤”(“deform”,“morphoid”)
现在,我需要用下划线替换二进制元组中的逗号,这是我做不到的。所以,结果应该是
[(bacteria_agricultur)、(agricultur_soil)、(soil_presenc)、(presenc_sampl)、(bacteria_agricultur)、(agricultur_soil)、(soil_presenc)、(presenc_sampl)、(nodul_uragensi)、(nodul_stem)、(stem_nodul)、('deform'_'morphoid')]
当我使用联接时,它会给我带来错误。
texts = ["_".join(word) for word in texts]
错误:
TypeError: sequence item 0: expected str instance, tuple found
我如何生产上述输出?谢谢
发布于 2017-08-24 13:20:32
您只需使用嵌套的列表理解:
In [446]: [['_'.join(y) for y in x] for x in lst]
Out[446]:
[['bacteria_agricultur', 'agricultur_soil', 'soil_presenc', 'presenc_sampl'],
['bacteria_agricultur', 'agricultur_soil', 'soil_presenc', 'presenc_sampl'],
['nodul_uragensi'],
['nodul_stem', 'stem_nodul'],
['deform_morphoid']]
如果坚持使用括号,也可以创建单元素元组:
In [447]: [[('_'.join(y), ) for y in x] for x in lst]
Out[447]:
[[('bacteria_agricultur',),
('agricultur_soil',),
('soil_presenc',),
('presenc_sampl',)],
[('bacteria_agricultur',),
('agricultur_soil',),
('soil_presenc',),
('presenc_sampl',)],
[('nodul_uragensi',)],
[('nodul_stem',), ('stem_nodul',)],
[('deform_morphoid',)]]
发布于 2017-08-24 13:34:08
NewData=[]
for bigrams in lists:
for grams in bigrams:
NewData.append(str(grams).replace("'","").replace(", ","_")))
https://stackoverflow.com/questions/45862675
复制相似问题