删除 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)