string = 'ESO 12-4 356.0648792 -80.1770250'
我希望它被分解成這樣的串列:
list = ['ESO 12-4', '356.0648792', '-80.1770250']
但是,第一部分 ( 'ESO 12-4') 可以有多個字串,所以我想把它從最后切掉。
我的代碼:
print(string.split(' ')[-2:])
輸出:
['356.0648792', '-80.1770250']
uj5u.com熱心網友回復:
我假設您始終擁有以下格式的字串。
your_string = '<FIRST_PART(CAN CONTAIN SPACES)> <SECOND_PART(WITHOUT SPACES)> <THIRD_PART(WITHOUT SPACES)>'
如果是,您可以使用它rsplit(maxsplit=2)來獲得所需的輸出。
>>> string = 'ESO 12-4 356.0648792 -80.1770250'
>>> string.rsplit(maxsplit=2)
['ESO 12-4', '356.0648792', '-80.1770250']
uj5u.com熱心網友回復:
您可以反轉字串并使用方法的maxsplit引數.split()。顯然你最后也應該反轉結果。試試這個:
>>> [s[::-1] for s in string[::-1].split(" ", 2)[::-1]]
['ESO 12-4', '356.0648792', '-80.1770250']
編輯:您可能應該使用.rsplit()@AbdulNiyasPM 發布的方法,而不是使用這種復雜的方法。
uj5u.com熱心網友回復:
我是 python 新手,我喜歡@Abdul Niyas P M @Selcuk答案。
string = 'ESO 12-4 356.0648792 -80.1770250'
l = len(string.split())
print(string.rsplit(maxsplit=l-2))
#['ESO 12-4', '356.0648792', '-80.1770250']
uj5u.com熱心網友回復:
您可以使用正則運算式提取“12-4”并使用它來拆分字串
>>>import re
>>>string = 'ESO 12-4 356.0648792 -80.1770250'
>>>matched_string = re.findall(r'[0-9] -[0-9] ', string)[0]
>>>[string.split(matched_string)[0] ' ' matched_string, string.split(' ')[-2] , string.split(' ')[-1]])
['ESO 12-4', '356.0648792', '-80.1770250']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/410769.html
標籤:
