2010-12-13 2 views
4

У меня есть строка в python, и я бы хотел снять последние три символа. Как мне это сделать?String Manipulation in Python

Итак, поверните что-то вроде «привет» на «он».

ответ

8

Вот несколько способов сделать это.

Вы можете заменить всю строку кусочком.

s = "hello" 
s = s[:-3] # string without last three characters 
print s 
# he 

В качестве альтернативы вы можете явно лишить последние три символа из строки, а затем назначить его обратно в строку. Хотя, возможно, более читаемый, он менее эффективен.

s = "hello" 
s = s.rstrip(s[-3:]) # s[-3:] are the last three characters of string 
         # rstrip returns a copy of the string with them removed 
print s 
# he 

В любом случае, вам придется заменить исходное значение строки с модифицированной версией, потому что они являются «неизменными» (неизменным) один раз установить в значение.

+0

Будьте осторожны с последним вариантом: 's =" helloxxxhelloxxx " s = s.replace (s [-3:], '') печать s' – se1by

+0

@ se1by: Хорошая точка ... ответ обновляется соответствующим образом. – martineau

1

типа "привет" [: 2]

или "привет" [: - 3], который является ответом на удаление последние три буквы

надеюсь, что это помогает

+0

Это не то, что было запрошено; то, что требовалось, было удалить последние три, а не взять первые два. –

+0

Я просто сфокусировался на «он» от «привет» :), его нормально, хотя –

4

"hello"[:-3] - первая length - 3 персонажи.

"hello"[:2] - первые 2 символа.

0

"hello"[:2] - это самый простой способ сделать это, однако точный ответ на проблему будет таким, как заявил Саиф аль-Харти. "hello"[:-3]

-1

если х ваша строка, то вы можете использовать x[:len(x)-3:+1], чтобы получить желаемый результат

+2

Это работает, но это очень плохой стиль, неэффективен, избыточен и, следовательно, подвержен ошибкам. – Davidmh