3 回答

TA貢獻1801條經驗 獲得超16個贊
您始終可以使用“.”拆分列表中的每個字符串,并獲取新列表。在這種情況下,如果您只對第一個拆分感興趣,則應在 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)
這打?。?/p>
['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']
添加回答
舉報