문자열에서 마지막 문자 제거


508

내 문자열의 길이가 10 자라고 가정 해 봅시다.

마지막 문자를 어떻게 제거합니까?

내 문자열이 "abcdefghij"( 'j'문자열을 여러 개 포함 할 수 있기 때문에 문자 를 바꾸고 싶지 않습니다 'j') 경우 마지막 문자 만 남기고 싶습니다. 그것이 무엇인지 또는 몇 번 발생했는지에 관계없이 문자열에서 마지막 문자를 제거해야합니다.


답변:


833

단순한:

st =  "abcdefghij"
st = st[:-1]

단계로 수행되는 방법을 보여주는 다른 방법도 있습니다.

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

이것은 또한 사용자 입력의 방법입니다.

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

목록에서 마지막 단어를 제거하려면 :

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
네, st[-1]마지막 문자입니다st
Cyrille

5
실제로 해당 슬라이스 st는 비어 있어도 작동 합니다. 글쎄, 여전히 빈 문자열을 반환하지만 오류는 발생하지 않습니다.
kindall

1
단어 목록이 있고 모든 단어의 마지막 문자를 삭제하려면 어떻게합니까? [파랑, 빨강, 녹색] => [blu, re, gree]?
Jellyse

5
[i[:-1] for i in ['blue','red','green']]
Cyrille

3
예를 보면,이 목록은 변경 가능하며, 그 것을 언급 할 가치가 list.pop()제자리에서 마지막 항목을 삭제로 방법, 목록을 처리 할 때 길을 가야하는 것입니다 O(1)동안, [:-1]슬라이스는 마지막 요소없이 목록의 복사본을 생성 O(n-1)시간 플러스 O(n-1)공간. 문자열은 변경할 수 없으므로 추가 할 것이 없습니다.
Dmitry

19

당신이하려는 것은 파이썬에서 문자열 슬라이싱 의 확장입니다 .

모든 문자열의 길이가 10이고 마지막 문자가 제거되었다고 가정하십시오.

>>> st[:9]
'abcdefghi'

마지막 N문자 를 제거하려면

>>> N = 3
>>> st[:-N]
'abcdefg'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.