Строковое деление на Python - PullRequest
       0

Строковое деление на Python

2 голосов
/ 20 августа 2010

У меня есть список строк, которые следуют формату частей имени, разделенных подчеркиванием.Вот формат:

string="somethingX_somethingY_one_two"

Что я хочу знать, как это сделать, извлечь «one_two» из каждой строки в списке и перестроить список так, чтобы каждая запись имела только "somethingX_somethingY".Я знаю, что в C есть функция strtok, которая полезна для разбиения на токены, но я не уверен, существует ли такой метод или стратегия для достижения того же эффекта в Python.Помогите мне пожалуйста?

Ответы [ 3 ]

6 голосов
/ 20 августа 2010

Вы можете использовать разделение и понимание списка:

l = ['_'.join(s.split('_')[:2]) for s in l]
3 голосов
/ 20 августа 2010

Если вы буквально пытаетесь удалить «_one_two» из конца строк, то вы можете сделать это:

tail_len = len("_one_two")
strs = [s[:-tail_len] for s in strs]

Если вы хотите удалить два последних компонента, разделенных подчеркиванием,Вы можете сделать это:

strs = ["_".join(s.split("_")[:-2]) for s in strs]

Если ни то, ни другое не является тем, что вы хотите, то позвольте обновить вопрос с более подробной информацией.

2 голосов
/ 20 августа 2010

Я думаю, это делает то, что вы просите.

s = "somethingX_somethingY_one_two"
splitted = s.split( "_" )
splitted = [ x for x in splitted if "something" in x ]
print "_".join( splitted )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...