首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python bigram中用"_“下划线替换逗号

在python bigram中用"_“下划线替换逗号
EN

Stack Overflow用户
提问于 2017-08-24 13:16:11
回答 2查看 900关注 0票数 0

我有一份名单。我能够在内部列表中生成大图,如下所示:

[(“细菌”、“农业”)、(“农业”、“土壤”)、(“土壤”、“前期”)、(“前期”、“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')]

当我使用联接时,它会给我带来错误。

代码语言:javascript
运行
复制
texts = ["_".join(word) for word in texts]

错误:

代码语言:javascript
运行
复制
TypeError: sequence item 0: expected str instance, tuple found

我如何生产上述输出?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-24 13:20:32

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

代码语言:javascript
运行
复制
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']]

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

代码语言:javascript
运行
复制
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',)]]
票数 1
EN

Stack Overflow用户

发布于 2017-08-24 13:34:08

代码语言:javascript
运行
复制
NewData=[]
for bigrams in lists:
    for grams in bigrams:
        NewData.append(str(grams).replace("'","").replace(", ","_")))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45862675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档