문자열에서 첫 x 문자를 제거 하시겠습니까?


116

문자열에서 첫 x 문자를 어떻게 제거 할 수 있습니까? 예를 들어 문자열이있는 경우 lipsum처음 3 개 문자를 어떻게 제거하고 sum?


5
제거 된 문자 수가 남아있는 문자 수와 같지 않은 경우 더 나은 예입니다. 예"lipsumm"[3:] == "summ"
Scott Pelak

답변:


213
>>> text = 'lipsum'
>>> text[3:]
'sum'

자세한 내용은 문자열에 대한 공식 문서를 참조하고 표기법에 대한 간결한 요약은 SO 답변을 참조하십시오 .


16

다른 방법 (실제 필요에 따라 다름) : 처음 n 개의 문자 를 팝 하고 팝된 문자와 수정 된 문자열을 모두 저장하려면 :

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum

3
나는 그것이 은유 적으로 "팝"하지만 추측 실제로는 단지 2 개의 다른 조각, 진짜 펑
jamylak

9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'

11
이것은 코드에서 더 길고 교체하기 전에 하위 문자열을 검색해야하므로 시간이 더 오래 걸립니다. 또한 : >>> x = 'liplip' >>> x.replace(x[:3], '') ''. 물론 세 번째 매개 변수 (count) = 1로이 문제를 해결할 수 있지만 여전히 더 오래 걸립니다.
jamylak

아니 그것은 당신의 대답과 관련이 있으므로 여기에 속합니다. 당신은 여전히 작동하도록 당신에 계수 = 1을 추가 할 수 있습니다 BTW
jamylak

4

사용 del.

예:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'

1
이것은 당신이 생각하는 것처럼 작동하지 않습니다 text = 'liplip' >>> text.lstrip(text[:3]) ''하나 때문에 문자 인수가 접두사 아니다; 오히려 모든 값 조합이 제거됩니다.str.lstrip([chars])
jamylak

@jamylak 내 수정
U10-Forward

1
두 솔루션 모두 작동하지 않습니다. 대한 'liplip'. 두 번째TypeError: 'str' object does not support item deletion
jamylak

@jamylak 다시 편집 됨
U10-Forward

@jamylak이 작동합니까, 지금, 그렇다면 다운 투표해야합니까?
U10-Forward

2

계좌 번호의 마지막 3 자리를 표시하는 예입니다.

x = '1234567890'   
x.replace(x[:7], '')

o/p: '890'

이 tkbx으로 대답과 같은 문제가있다
jamylak

예. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak

또한이도 당신이 문자를 대체하고, 질문에 대답하지 않는 x삭제하는 대신들
jamylak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.