我有以下字符串:Python字符串獲得領先的字符,直到達到第一個逗號
strIn = "Head,0.000235532,0.43656735"
我想 vals = [0.000235532,0.43656735]
我怎樣才能做到這一點使用此變量type = "Head"
和陣列檢索蟒蛇?我考慮過使用strIn [0],...,strIn [5]來獲取類型,但後來我意識到我會得到不同長度的類型。謝謝。
我有以下字符串:Python字符串獲得領先的字符,直到達到第一個逗號
strIn = "Head,0.000235532,0.43656735"
我想 vals = [0.000235532,0.43656735]
我怎樣才能做到這一點使用此變量type = "Head"
和陣列檢索蟒蛇?我考慮過使用strIn [0],...,strIn [5]來獲取類型,但後來我意識到我會得到不同長度的類型。謝謝。
如果你使用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:]]
請注意,''vals''將是一個字符串列表。 – 2014-12-04 16:51:15
對不起,在Python 2.7。這仍然可以工作嗎? – jds 2014-12-04 16:51:59
@Menegazzo真的。我添加了一行將其轉換爲浮動列表。 – 2014-12-04 16:52:46
正如你在python2先拆與,
然後用切片和float
功能:
>>> none=strIn.split(',')[0]
>>> none
'Head'
>>> vals=map(float,strIn.split(',')[1:])
>>> vals
[0.000235532, 0.43656735]
由於type
是一個內置的名字建議不使用它!
'type'是一個特殊的關鍵字,代碼可能會有令人驚訝的後果;-) – 2014-12-04 17:05:36
@StanislavShabalin是的;),感謝您的關注! – Kasramvd 2014-12-04 17:09:14
'str.split'將是一個很好的起點。 – Kevin 2014-12-04 16:47:18