2011-03-30 5 views
0

Лучше способ удаляющей строки Я хотел бы, чтобы извлечь число из строки типа:чередование строк в Python

Var = '0x456;//used for fooing' 

##I do it this way but I am sure there is much better way of doing this : 
v = Var.split(';') 
c= v[0] 

##use c for further processing .... 

Что такое лучший способ извлечения подстроку 0x456 из данной Var?

+1

'c = Var.split (';') [0]'? –

+0

Определите «лучше». – NPE

+0

Ваше решение является лучшим для чтения. – Jason

ответ

2

Существует более эффективный способ, как вы предполагали; так как вам нужен только первый токен, вы можете просто найти индекс ';' символ и взять подстроку до этого.

Var[:Var.index(';')] 

ps Это не соглашение о наименовании Python в верхний регистр первой буквы имени переменной; это обычно используется для классов.

+0

Это меньше pythonic по сравнению с моим комментарием выше. Его ненужная нарезка и не достигает ничего, что не достигается вызовом функции .split' –

+0

Это не обязательно правильно. Строки Python неизменяемы, поэтому нарезка и '.split' должны построить новые строки. Разница в том, что моя нарезка, а другая в другом ответе, только строят одну новую строку. Ваше решение построит как минимум две новые строки (в зависимости от того, содержит ли комментарий в стиле C++ ';') и список, который должен содержать их. С другой стороны, это правда, что использование '.index' или' .find' требует пересечения входной переменной дважды - один раз, чтобы найти индекс, а другой - срезать его. Но поскольку число анализируемых элементов ограничено, это незначительно. –

+0

Лично использование метода .split предпочтительнее? так как они могут принимать обе стороны без повторного нарезки. –

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