Как разделить части строки в списке на основе предопределенной части строки - PullRequest
0 голосов
/ 09 марта 2020

Пожалуйста, помогите мне с вопросом ниже

sample_list = ['Ironman.mdc.googlesuite.net', 'Hulk.nba.abc.googlekey.net', 'Thor.web.gg.hh.googlestream.net', 'Antman.googled.net', 'Loki.media.googlesuite.net','Captain.googlekey.net']

Я бы хотел, чтобы все предшествовало 'googlesuite. net', 'googlekey. net', 'googlestream. net 'и' googled. net 'в списке 1 и соответствующие префиксы в другом списке как:

result_list1=['Ironman.mdc', 'Hulk.nba.abc', 'Thor.web.gg.hh', 'Antman', 'Loki.media', 'Captain'] result_list2=['googlesuite.net', 'googlekey.net', 'googlestream.net', 'googled.net', 'googlesuite.net', 'googlekey.net']

Ответы [ 3 ]

6 голосов
/ 09 марта 2020

Вы всегда можете разделить каждую строку в списке с помощью '.' и получите новый список. В этом случае, если вас интересует только первое разбиение, вам следует использовать второй аргумент в методе разбиения (который сообщает вхождение):

first_list =[x.split('.')[0] for x in sample_list]

Для второго списка:

second_list =[x.split('.',1)[1] for x in sample_list]

Лучший способ - выполнить итерации по образцу sample_list только один раз и получить оба списка. Как показано ниже:

first_list, second_list = zip(* [x.split('.',1) for x in sample_list])
3 голосов
/ 09 марта 2020

Использование понимания списка вместе с split:

sample_list = ['Ironman.googlesuite.net', 'Hulk.googlekey.net',
    'Thor.googlestream.net', 'Antman.googled.net', 'Loki.googlesuite.net',
    'Captain.googlekey.net']
result_list1 = [i.split('.')[0] for i in sample_list]
print(result_list1)

Это печатает:

['Ironman', 'Hulk', 'Thor', 'Antman', 'Loki', 'Captain']

Эта стратегия заключается в сохранении для каждого входного домена только компонента до , но не включая первый разделитель точек. Для второго списка мы можем использовать re.sub здесь:

result_list2 = [re.sub(r'^[^.]+\.', '', i) for i in sample_list]
print(result_list2)

Это печатает:

['googlesuite.net', 'googlekey.net', 'googlestream.net', 'googled.net',
 'googlesuite.net', 'googlekey.net']
0 голосов
/ 09 марта 2020

спасибо за ответы, это помогает, но что, если у меня есть такой список:

sample_list = ['Ironman.mdc.googlesuite.net', 'Hulk.nba.abc.googlekey.net', 'Thor.web.gg.hh.googlestream.net', 'Antman.googled.net', 'Loki.media.googlesuite.net','Captain.googlekey.net']

Я бы хотел, чтобы все предшествовало 'googlesuite. net', ' googlekey. net ',' googlestream. net 'и' googled. net 'в списке list1 и соответствующие префиксы в другом списке:

result_list1=['Ironman.mdc', 'Hulk.nba.abc', 'Thor.web.gg.hh', 'Antman', 'Loki.media', 'Captain']

result_list2=['googlesuite.net', 'googlekey.net', 'googlestream.net', 'googled.net', 'googlesuite.net', 'googlekey.net']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...