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])
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']
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']
添加回答
举报