在python bigrams中,将逗号替换为下划线

2024-09-27 00:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张单子。我可以在内部列表中生成双元组,如下所示:

[[('bacteria', 'agricultur'), ('agricultur', 'soil'), ('soil', 'presenc'), ('presenc', 'sampl')],[('bacteria', 'agricultur'), ('agricultur', 'soil'), ('soil', 'presenc'), ('presenc', 'sampl')],[('nodul', 'uragensi')], [('nodul', 'stem'), ('stem', 'nodul')], [('deform', 'morphoid')]]

现在,我需要用下划线替换bigram元组中的逗号,这是我无法做到的。所以,结果应该是

[[(bacteria_agricultur), (agricultur_soil), (soil_presenc), (presenc_sampl)],[(bacteria_agricultur), (agricultur_soil), (soil_presenc), (presenc_sampl)],[(nodul_uragensi)], [(nodul_stem), (stem_nodul)], [('deform'_'morphoid')]]

当我使用join时,它会出错

texts = ["_".join(word) for word in texts]

错误:

^{pr2}$

如何产生上述输出?谢谢


Tags: 列表deformword单子joinstemtextssoil
2条回答

您只需使用嵌套列表理解:

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']]

如果坚持使用括号,则还可以创建单元素元组:

^{pr2}$
NewData=[]
for bigrams in lists:
    for grams in bigrams:
        NewData.append(str(grams).replace("'","").replace(", ","_")))

相关问题 更多 >

    热门问题