python列表字符串替换_python – 替换字符串列表中的子字符串

我正在尝试清理我的句子以及我想在句子中删除这些标签(它们是下划线的形式,后跟一个单词,例如“_UH”).

基本上我想删除后跟下划线的字符串(也删除下划线本身)

文本:

['hanks_NNS sir_VBP',

'Oh_UH thanks_NNS to_TO remember_VB']

需要输出:

['hanks sir',

'Oh thanks to remember']

以下是我尝试过的代码:

for i in text:

k= i.split(" ")

print (k)

for z in k:

if "_" in z:

j=z.replace("_",'')

print (j)

电流输出:

ThanksNNS

sirVBP

OhUH

thanksNNS

toTO

rememberVB

RemindVB

解决方法:

正则表达式:

您可以使用re.sub()执行此操作.匹配字符串中的所需子字符串并将子字符串替换为空字符串:

import re

text = ['hanks_NNS sir_VBP', 'Oh_UH thanks_NNS to_TO remember_VB']

curated_text = [re.sub(r'_\S*', r'', a) for a in text]

print curated_text

输出:

['hanks sir', 'Oh thanks to remember']

正则表达式:

_\S* - Underscore followed by 0 or more non space characters

没有正则表达式:

text = ['hanks_NNS sir_VBP', 'Oh_UH thanks_NNS to_TO remember_VB']

curated_text = [] # Outer container for holding strings in text.

for i in text:

d = [] # Inner container for holding different parts of same string.

for b in i.split():

c = b.split('_')[0] # Discard second element after split

d.append(c) # Append first element to inner container.

curated_text.append(' '.join(d)) # Join the elements of inner container.

#Append the curated string to the outer container.

print curated_text

输出:

['hanks sir', 'Oh thanks to remember']

你的代码有问题:

你只是用空字符串替换’_’,因为你想要用空字符串替换’_’和后面的字符.

for i in text:

k= i.split(" ")

print (k)

for z in k:

if "_" in z:

j=z.replace("_",'') #

print (j)

标签:python,arrays,replace,string,list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值