[python] 파이썬을 사용하여 문자열에서 문자를 삭제하는 방법

예를 들어 문자열이 있습니다. EXAMPLE.

중간 문자를 제거하려면 어떻게 M해야합니까? 코드가 필요하지 않습니다. 나는 알고 싶다:

  • 파이썬의 문자열은 특별한 문자로 끝나나요?
  • 중간 문자부터 시작하여 새 문자열을 작성하고 중간 문자를 복사하지 않고 모든 것을 오른쪽에서 왼쪽으로 이동하는 것이 더 좋은 방법은 무엇입니까?


답변

파이썬에서는 문자열을 변경할 수 없으므로 새 문자열을 만들어야합니다. 새 문자열을 만드는 방법에 대한 몇 가지 옵션이 있습니다. 어디에서나 ‘M’을 제거하려면 다음을 수행하십시오.

newstr = oldstr.replace("M", "")

중심 문자를 제거하려면 다음을 수행하십시오.

midlen = len(oldstr)/2   # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]

문자열이 특수 문자로 끝나는 지 물었습니다. 아니요, C 프로그래머처럼 생각하고 있습니다. 파이썬에서는 문자열이 길이와 함께 저장되므로를 포함한 모든 바이트 값 \0이 문자열에 나타날 수 있습니다.


답변

이것은 아마도 가장 좋은 방법 일 것입니다 :

original = "EXAMPLE"
removed = original.replace("M", "")

문자 등을 바꾸는 것에 대해 걱정하지 마십시오. 대부분의 Python 코드는 훨씬 높은 수준의 추상화에서 발생합니다.


답변

특정 위치를 바꾸려면 :

s = s[:pos] + s[(pos+1):]

특정 문자를 바꾸려면 :

s = s.replace('M','')


답변

문자열은 변경할 수 없습니다. 그러나 목록을 변경할 수있는 목록으로 변환 한 다음 목록을 변경 한 후 목록을 다시 문자열로 변환 할 수 있습니다.

s = "this is a string"

l = list(s)  # convert to list

l[1] = ""    # "delete" letter h (the item actually still exists but is empty)
l[1:2] = []  # really delete letter h (the item is actually removed from the list)
del(l[1])    # another way to delete it

p = l.index("a")  # find position of the letter "a"
del(l[p])         # delete it

s = "".join(l)  # convert back to string

기존 문자열에서 원하는 문자를 제외한 모든 것을 가져 와서 다른 문자열처럼 새 문자열을 만들 수도 있습니다 .


답변

중간 문자 (예 : M)를 제거하려면 어떻게해야합니까?

파이썬의 문자열은 변경할 수 없기 때문에 할 수 없습니다 .

파이썬의 문자열은 특별한 문자로 끝나나요?

아니요. 문자 목록과 비슷합니다. 리스트의 길이는 문자열의 길이를 정의하며 문자는 터미네이터로 작동하지 않습니다.

중간 문자부터 시작하여 새 문자열을 작성하고 중간 문자를 복사하지 않고 모든 것을 오른쪽에서 왼쪽으로 이동하는 것이 더 좋은 방법은 무엇입니까?

기존 문자열을 수정할 수 없으므로 중간 문자를 제외한 모든 문자열이 포함 된 새 문자열을 만들어야합니다.


답변

translate()방법을 사용하십시오 :

>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'


답변

UserString.MutableString

가변 방식 :

import UserString

s = UserString.MutableString("EXAMPLE")

>>> type(s)
<type 'str'>

# Delete 'M'
del s[3]

# Turn it for immutable:
s = str(s)