2014-01-17 4 views
1

У меня есть строка «A1T1730»Как извлечь определенные буквы из строки с помощью Python

От этого мне нужно извлечь вторую букву и последние четыре буквы. Например, из «A1T1730» мне нужно извлечь «1» и «1730». Я не уверен, как это сделать на Python.

У меня есть следующее прямо сейчас, которое извлекает каждый символ из строки отдельно, поэтому кто-то может помочь мне обновить его в соответствии с вышеуказанной необходимостью.

list = ['A1T1730'] 
for letter in list[0]: 
     print letter 

Который дает мне результат, 1, Т, 1, 7, 3, 0

+1

Думаю, нам нужна дополнительная информация о шаблоне данных. Для данных можно найти решение, но может быть, что он не работает ни для какого другого случая, который у вас может быть. – Caramiriel

+2

1, 7, 3 и 0 не являются буквами. Кроме того, не называйте список 'list', который затеняет встроенный тип. – geoffspear

ответ

4
my_string = "A1T1730" 
my_string = my_string[1] + my_string[-4:] 
print my_string 

Выход

11730 

Если вы хотите, чтобы извлечь их различные переменные, вы можете просто сделать

first, last = my_string[1], my_string[-4:] 
print first, last 

Выход

1 1730 
0

Вы можете использовать функцию isdigit(). Если этот символ является цифрой, он возвращает true и в противном случае возвращает false:

list = ['A1T1730'] 
for letter in list[0]: 
    if letter.isdigit() == True: 
     print letter, #The coma is used for print in the same line 

Надеюсь, это полезно.

3

Использование filter с str.isdigit (как несвязанной форме метод):

>>> filter(str.isdigit, 'A1T1730') 
'11730' 
>>> ''.join(filter(str.isdigit, 'A1T1730')) # In Python 3.x 
'11730' 

Если вы хотите, чтобы получить числа, разделенные, используйте регулярное выражение (см re.findall): решение

>>> import re 
>>> re.findall(r'\d+', 'A1T1730') 
['1', '1730'] 

Используйте thefourtheye в том случае, если позиции цифр фиксированы.


BTW, не следует использовать list в качестве имени переменной. Он тень builtin list function.

+1

Downvoter: Как я могу улучшить ответ? Если что-то не так, пожалуйста, дайте мне знать. – falsetru

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