Как удалить подстроку после указанного символа c в списке строк в Python - PullRequest
1 голос
/ 10 апреля 2020

У меня есть список строковых меток. я хочу сохранить подстроку самого элемента до второго "." и удалите все символы после второго «.». Я нашел пост, в котором показано, как сделать это с помощью текстовой строки с помощью функции split. Однако тип данных списка не имеет функции разделения. Фактический тип данных - pandas .core.indexes.base.index, который представляется мне списком. Для первого элемента в списке я хочу сохранить L1.Energy и удалить все после второго ".".

current_list = ['L1.Energy.Energy', 'L1.Utility.Energy', 'L1.Technology.Utility', 'L1.Financial.Utility']
desired_list = [L1.Energy', 'L1.Utility', 'L1.Technology,'L1.Financial']

Ответы [ 4 ]

1 голос
/ 10 апреля 2020
current_list = ['L1.Energy.Energy', 'L1.Utility.Energy', 'L1.Technology.Utility', 'L1.Financial.Utility']

desired_list = [ '.'.join(x.split('.')[:2]) for x in current_list ]

Кстати, это будет работать, даже если у ваших ярлыков больше двух точек (например, 'L1.Utility.Energy.Electric')

1 голос
/ 10 апреля 2020

Здесь, как вкладчик:

desired_list = [ s[:s.find(".",s.find(".")+1)] for s in current_list]
0 голосов
/ 10 апреля 2020

Решение с regex:

desired_list = [re.sub('(\..*)(\..*)',r'\1', s) for s in current_list]

Вывод:

['L1.Energy', 'L1.Utility', 'L1.Technology', 'L1.Financial']
0 голосов
/ 10 апреля 2020

Здесь уродливо, но работает

bob = ['L1.Energy.Energy', 'L1.Utility.Energy', 
'L1.Technology.Utility','L1.Financial.Utility']
result = []

for i in bob:
    temp = i.split(".")
    result.append(temp[0] + "." + temp[1])
print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...