如何根据字符串中的预定义部分拆分列表中的字符串部分

2024-05-16 02:00:09 发布

您现在位置:Python中文网/ 问答频道 /正文

请帮我回答下面的问题

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']

我希望列表1中“googlesuite.net”、“googlekey.net”、“googlestream.net”和“googled.net”之前的所有内容以及另一个列表中相应的前缀如下:

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']


Tags: webnethhthorabcnbaggmdc
3条回答

您始终可以使用“.”拆分列表中的每个字符串,并获得一个新列表。在这种情况下,如果您只对第一次拆分感兴趣,则应在split方法中使用第二个参数(该参数告知发生情况):

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

关于第二份清单:

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

更好的方法是只在示例列表中迭代一次,然后获得两个列表。如下图所示:

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

谢谢你的回答,这确实有帮助,但如果我有这样的列表:

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']

我希望列表1中“googlesuite.net”、“googlekey.net”、“googlestream.net”和“googled.net”之前的所有内容以及另一个列表中相应的前缀如下:

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']

使用列表理解和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']

相关问题 更多 >