programing

Python을 사용하여 문자열에서 문자를 삭제하는 방법

firstcheck 2022. 10. 8. 08:50
반응형

Python을 사용하여 문자열에서 문자를 삭제하는 방법

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

가운데 문자를 제거하려면 어떻게 해야 하나요?M어떻게 할 수 있을까요?암호는 필요 없어알고 싶다:

  • Python 문자열은 특수문자로 끝납니까?
  • 모든 것을 가운데 글자에서 왼쪽 글자로 바꾸거나 새 줄을 만드는 방법, 가운데 글자를 베끼지 않는 방법 중 어느 것이 더 나은 방법일까요?

Python에서는 문자열은 불변하기 때문에 새로운 문자열을 작성해야 합니다.새 문자열 작성 방법에는 몇 가지 옵션이 있습니다.'M'이 표시되는 위치에 관계없이 삭제할 경우:

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

중앙 문자를 삭제하는 경우:

midlen = len(oldstr) // 2
newstr = oldstr[:midlen] + oldstr[midlen+1:]

문자열이 특수 문자로 끝나냐고 물어보셨는데요.아니요, 당신은 C 프로그래머처럼 생각하고 있어요.Python에서 문자열은 길이와 함께 저장되므로 다음을 포함한 모든 바이트 값\0는 문자열로 표시할 수 있습니다.

특정 위치를 바꾸려면:

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

특정 문자를 바꾸려면:

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

이것이 가장 좋은 방법일 것입니다.

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

캐릭터 이동 같은 건 걱정하지 마세요.대부분의 Python 코드는 훨씬 더 높은 수준의 추상화에서 발생합니다.

끈은 불변이다.그러나 목록을 목록으로 변환하고, 목록을 변경한 후 다시 문자열로 변환할 수 있습니다.

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을 제거하려면 어떻게 해야 합니까?

Python의 문자열은 불변하기 때문에 할 수 없습니다.

Python 문자열은 특수문자로 끝납니까?

아니요. 이들은 문자 목록과 비슷합니다. 목록의 길이가 문자열의 길이를 정의하며 종단자로 기능하는 문자는 없습니다.

모든 것을 가운데 글자에서 왼쪽 글자로 바꾸거나 새 줄을 만드는 방법, 가운데 글자를 베끼지 않는 방법 중 어느 것이 더 나은 방법일까요?

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

다음 방법을 사용합니다.

>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'
def kill_char(string, n): # n = position of which character you want to remove
    begin = string[:n]    # from beginning to n (n not included)
    end = string[n+1:]    # n+1 through end of string
    return begin + end
print kill_char("EXAMPLE", 3)  # "M" removed

여기 어디선가 본 적 있어요.

card = random.choice(cards)
cardsLeft = cards.replace(card, '', 1)

문자열에서 1개의 문자를 삭제하는 방법:다음으로 문자열에 문자로 표현된 카드 스택이 있는 예를 나타냅니다.그 중 하나가 그려집니다(랜덤용 랜덤모듈 Import).choice() 함수는 문자열에서 임의의 문자를 선택합니다).string 함수 replace()에 의해 주어진 나머지 카드를 유지하기 위해 새로운 문자열 cardsLeft가 생성됩니다.여기서 마지막 파라미터는 빈 문자열로 치환되는 것은 1개뿐임을 나타냅니다.

Python 2에서는 UserString을 사용할 수 있습니다.MutableString을 사용하면 다음과 같이 변경할 수 있습니다.

>>> import UserString
>>> s = UserString.MutableString("EXAMPLE")
>>> type(s)
<class 'UserString.MutableString'>
>>> del s[3]    # Delete 'M'
>>> s = str(s)  # Turn it into an immutable value
>>> s
'EXAPLE'

MutableString파이썬 3호

또 다른 방법은 기능을 사용하는 것입니다.

아래는 함수를 호출하는 것만으로 문자열에서 모든 모음을 제거하는 방법입니다.

def disemvowel(s):
    return s.translate(None, "aeiouAEIOU")

M을 잘라내기 위해 한 일은 다음과 같습니다.

s = 'EXAMPLE'
s1 = s[:s.index('M')] + s[s.index('M')+1:]

char ★★★sub-string 1회(첫 번째 항목만):

main_string = main_string.replace(sub_str, replace_with, 1)

모: note1 할 수 int바꿀 오카렌스 수를 지정합니다.

목록 이해는 간단히 사용할 수 있습니다.

,여러분,여러분,여러분,여러분,여러분,끈이있다라고생각해보세요.my name is 이 글자를 .m 합니다. 다음 코드를 사용합니다.

"".join([x for x in "my name is" if x is not 'm'])

문자열 내의 문자를 삭제/무시하고 싶은 경우, 예를 들어 이 문자열이 있는 경우,

[11:L:0]

예를 들어 CSV 파일 등의 웹 API 응답에서 요청을 사용하고 있다고 가정해 보겠습니다.

import requests
udid = 123456
url = 'http://webservices.yourserver.com/action/id-' + udid
s = requests.Session()
s.verify = False
resp = s.get(url, stream=True)
content = resp.content

루프하여 불필요한 문자를 삭제합니다.

for line in resp.iter_lines():
  line = line.replace("[", "")
  line = line.replace("]", "")
  line = line.replace('"', "")

분할 옵션을 선택하면 값을 개별적으로 읽을 수 있습니다.

listofvalues = line.split(':')

이제 각 값에 쉽게 액세스할 수 있습니다.

print listofvalues[0]
print listofvalues[1]
print listofvalues[2]

이것은 인쇄됩니다.

11

L

0

의 새로운 이 에 .Python 3.9+

#str.removeprefix("prefix_to_be_removed")
#str.removesuffix("suffix_to_be_removed")

s='EXAMPLE'

이 경우 'M'의 위치는 3입니다.

s = s[:3] + s[3:].removeprefix('M')

또는

s = s[:4].removesuffix('M') + s[4:]

#output'EXAPLE'
from random import randint


def shuffle_word(word):
    newWord=""
    for i in range(0,len(word)):
        pos=randint(0,len(word)-1)
        newWord += word[pos]
        word = word[:pos]+word[pos+1:]
    return newWord

word = "Sarajevo"
print(shuffle_word(word))

문자열은 Python에서 불변하기 때문에 두 옵션 모두 기본적으로 같은 것을 의미합니다.

언급URL : https://stackoverflow.com/questions/3559559/how-to-delete-a-character-from-a-string-using-python

반응형