为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2022-08-25 14:46:13
请帮我解决以下问题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']我希望 list1 中前面的所有内容都位于 “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']
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

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

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


查看完整回答
反对 回复 2022-08-25
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

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


查看完整回答
反对 回复 2022-08-25
?
湖上湖

TA贡献2003条经验 获得超2个赞

谢谢你的答案,它确实有帮助,但如果我有这样的列表怎么办:

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

我希望 list1 中前面的所有内容都位于 “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']


查看完整回答
反对 回复 2022-08-25
  • 3 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信