2014-12-04 2 views
2

У меня есть следующая строка:Python строки получить ведущие символы до первой запятой

strIn = "Head,0.000235532,0.43656735" 

Я хотел бы, чтобы извлечь из этой переменной type = "Head" и массив vals = [0.000235532,0.43656735]

Как я могу это сделать с помощью Python? Я рассмотрел использование strIn [0], ..., strIn [5], чтобы получить тип, но потом понял, что получаю типы различной длины. Благодарю.

+1

'str.split' будет хорошей отправной точкой. – Kevin

ответ

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'' будет списком строк. –

+0

Извините, на Python 2.7. Может ли это работать? – jds

+0

@Menegazzo True. Я добавил строку, чтобы преобразовать ее в список поплавков. –

0

Как вы в python2 первого раскола с , затем использовать нарезку и float функция:

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

Как type встроенный в названии рекомендуется не использовать его!

+0

'type' - специальное ключевое слово, этот код может иметь удивительные последствия ;-) –

+0

@StanislavShabalin yep,;), спасибо за внимание! – Kasramvd

Смежные вопросы