2013-10-22 4 views
-1

str = str.replace ('x', '')는 모든 x를 제거한다는 것을 알고 있습니다.문자열에서 특정 문자 삭제 (파이썬)

하지만 문자열이 jxjrxxtzxz이고 첫 번째와 마지막 x가 jjrxxtzz 인 문자열 만 삭제한다고 가정 해 보겠습니다. 이것은 문자열과 관련이 없습니다. 나는 그 특별한 예가 아닌 모든 문자열을 다룰 수 있기를 원합니다.

편집 : x는 제거하려는 유일한 문자라고 가정합니다. 고맙습니다!

답변

0

상당히 간단한 방법은 findrfind을 사용하여 제거 할 문자를 찾는 것입니다.

s = 'jxjrxxtzxz' 

# Remove first occurrence of 'x' 
ix = s.find('x') 
if ix > -1: 
    s = s[:ix]+s[ix+1:] 

# Remove last occurrence of 'x' 
ix = s.rfind('x') 
if ix > -1: 
    s = s[:ix]+s[ix+1:] 
+0

그래서 문자열이 jxjrxxtxzxz이었고, 나는를 제거하기를 원한다면 그것에 대해 이동하는 쉬운 방법이 없다 첫 번째와 마지막 두 x? – juice

0

꽤하지만이 작동하지 않음 :

def remove_first_last(c, s): 
    return s.replace(c,'', 1)[::-1].replace(c,'',1)[::-1] 

사용법 :

In [1]: remove_first_last('x', 'jxjrxxtzxz') 
Out[1]: 'jjrxxtzz' 
관련 문제