删除 python 中的括号及其内容
remove bracket and its content in python
我已经使用 lstm 方法实现了情感分析分类。我已经训练了我的模型并保存了它。我已经加载了火车模型,并且正在做分类部分,我将其保存在数据框中。我需要删除括号及其内容,我将在下面向您展示。
这是我的代码:
hotelname = []
sentimentanalysis = []
for item in selection1:
name = item['name']
hotelname.append(name)
print (name)
输出结果如下:
Mystik Lifestyle (Save 34%)
Chalets Chamarel (Adults Only)
Andrea Lodge (Save 18%)
Hibiscus Beach Resort & Spa (Save 18%)
Lagoon Attitude (Adults Only)
Ocean V Hotel (Adults Only)
但我希望我的输出是这样的::
Mystik Lifestyle
Chalets Chamarel
Andrea Lodge
Hibiscus Beach Resort & Spa
Lagoon Attitude
Ocean V Hotel
有人可以告诉我我需要在我的代码中添加什么吗?
您可以通过以下方式使用 re
模块:
import re
def clean(n):
return re.sub(r'\s\(.*\)','',n)
然后:
name = clean(item['name'])
而不是
name = item['name']
请注意,我使用所谓的原始字符串作为 re.sub 的第一个参数,并且还删除了括号及其内容之前的空格 (\s
)。请注意 (
和 )
需要转义,因为它们在模式中具有特殊含义(因此前导反斜杠)。
import re
def remove_bracket(text):
x = re.sub("[\(\[].*?[\)\]]", "", text)[:-1]
return x
cleaned_text = remove_bracket(name)
hotelname.append(cleaned_text)
编辑:
li = ['Mystik Lifestyle (Save 34%)',
'Chalets Chamarel (Adults Only)',
'Andrea Lodge (Save 18%)',
'Hibiscus Beach Resort & Spa (Save 18%)',
'Lagoon Attitude (Adults Only)',
'Ocean V Hotel (Adults Only)']
for i in li:
cleaned_text = remove_bracket(i)
print(cleaned_text)
输出:
Mystik Lifestyle
Chalets Chamarel
Andrea Lodge
Hibiscus Beach Resort & Spa
Lagoon Attitude
Ocean V Hotel
您可以使用简单的字符串方法 .split().
看下面的代码:
elements = ['Mystik Lifestyle (Save 34%)',
'Chalets Chamarel (Adults Only)',
'Andrea Lodge (Save 18%)',
'Hibiscus Beach Resort & Spa (Save 18%)',
'Lagoon Attitude (Adults Only)',
'Ocean V Hotel (Adults Only)']
for element in elements:
without_text_after_unwanted_character = element.split('(')[0]
# This will get everything before the '(' as we splitted
print(without_text_after_unwanted_character)
# If you want to create a new list the new values, you can do:
clean_list = [x.split('(')[0] for x in elements]
for clean_text in clean_list:
print(clean_text)
你试试下面的代码:
hotelname = []
sentimentanalysis = []
for item in selection1:
name = item['name'].split('(')[0].strip()
hotelname.append(name)
print (name)
我已经使用 lstm 方法实现了情感分析分类。我已经训练了我的模型并保存了它。我已经加载了火车模型,并且正在做分类部分,我将其保存在数据框中。我需要删除括号及其内容,我将在下面向您展示。
这是我的代码:
hotelname = []
sentimentanalysis = []
for item in selection1:
name = item['name']
hotelname.append(name)
print (name)
输出结果如下:
Mystik Lifestyle (Save 34%)
Chalets Chamarel (Adults Only)
Andrea Lodge (Save 18%)
Hibiscus Beach Resort & Spa (Save 18%)
Lagoon Attitude (Adults Only)
Ocean V Hotel (Adults Only)
但我希望我的输出是这样的::
Mystik Lifestyle
Chalets Chamarel
Andrea Lodge
Hibiscus Beach Resort & Spa
Lagoon Attitude
Ocean V Hotel
有人可以告诉我我需要在我的代码中添加什么吗?
您可以通过以下方式使用 re
模块:
import re
def clean(n):
return re.sub(r'\s\(.*\)','',n)
然后:
name = clean(item['name'])
而不是
name = item['name']
请注意,我使用所谓的原始字符串作为 re.sub 的第一个参数,并且还删除了括号及其内容之前的空格 (\s
)。请注意 (
和 )
需要转义,因为它们在模式中具有特殊含义(因此前导反斜杠)。
import re
def remove_bracket(text):
x = re.sub("[\(\[].*?[\)\]]", "", text)[:-1]
return x
cleaned_text = remove_bracket(name)
hotelname.append(cleaned_text)
编辑:
li = ['Mystik Lifestyle (Save 34%)',
'Chalets Chamarel (Adults Only)',
'Andrea Lodge (Save 18%)',
'Hibiscus Beach Resort & Spa (Save 18%)',
'Lagoon Attitude (Adults Only)',
'Ocean V Hotel (Adults Only)']
for i in li:
cleaned_text = remove_bracket(i)
print(cleaned_text)
输出:
Mystik Lifestyle
Chalets Chamarel
Andrea Lodge
Hibiscus Beach Resort & Spa
Lagoon Attitude
Ocean V Hotel
您可以使用简单的字符串方法 .split().
看下面的代码:
elements = ['Mystik Lifestyle (Save 34%)',
'Chalets Chamarel (Adults Only)',
'Andrea Lodge (Save 18%)',
'Hibiscus Beach Resort & Spa (Save 18%)',
'Lagoon Attitude (Adults Only)',
'Ocean V Hotel (Adults Only)']
for element in elements:
without_text_after_unwanted_character = element.split('(')[0]
# This will get everything before the '(' as we splitted
print(without_text_after_unwanted_character)
# If you want to create a new list the new values, you can do:
clean_list = [x.split('(')[0] for x in elements]
for clean_text in clean_list:
print(clean_text)
你试试下面的代码:
hotelname = []
sentimentanalysis = []
for item in selection1:
name = item['name'].split('(')[0].strip()
hotelname.append(name)
print (name)