2014-12-04 99 views
2

我有以下字符串:Python字符串獲得領先的字符,直到達到第一個逗號

strIn = "Head,0.000235532,0.43656735" 

我想 vals = [0.000235532,0.43656735]

我怎樣才能做到這一點使用此變量type = "Head"和陣列檢索蟒蛇?我考慮過使用strIn [0],...,strIn [5]來獲取類型,但後來我意識到我會得到不同長度的類型。謝謝。

+1

'str.split'將是一個很好的起點。 – Kevin 2014-12-04 16:47:18

回答

2

如果你使用Python 3,你可以做

type_, *vals = strIn.split(',') 
vals = [float(v) for v in vals] # Convert list of strings to list of floats. 

它使用str.split字符串分割成基於所提供的字符列表,然後使用Python 3的擴展元組拆包放第一值轉換爲type_,其餘值轉換爲vals。有關如何使用元組解包的更多討論,請參閱this answer

如果你在Python 2裏,你不能使用擴展拆包語法,所以你必須添加額外的步驟:

str_list = strIn.split(',') 
type_ = str_list[0] 
vals = [float(v) for v in str_list[1:]] 
+0

請注意,''vals''將是一個字符串列表。 – 2014-12-04 16:51:15

+0

對不起,在Python 2.7。這仍然可以工作嗎? – jds 2014-12-04 16:51:59

+0

@Menegazzo真的。我添加了一行將其轉換爲浮動列表。 – 2014-12-04 16:52:46

0

正如你在python2先拆與,然後用切片和float功能:

>>> none=strIn.split(',')[0] 
>>> none 
'Head' 
>>> vals=map(float,strIn.split(',')[1:]) 
>>> vals 
[0.000235532, 0.43656735] 

由於type是一個內置的名字建議不使用它!

+0

'type'是一個特殊的關鍵字,代碼可能會有令人驚訝的後果;-) – 2014-12-04 17:05:36

+0

@StanislavShabalin是的;),感謝您的關注! – Kasramvd 2014-12-04 17:09:14

相關問題