답변:
파이썬에서는 문자열을 변경할 수 없으므로 새 문자열을 만들어야합니다. 새 문자열을 만드는 방법에 대한 몇 가지 옵션이 있습니다. 어디에서나 'M'을 제거하려면 다음을 수행하십시오.
newstr = oldstr.replace("M", "")
중심 문자를 제거하려면 다음을 수행하십시오.
midlen = len(oldstr)/2 # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]
문자열이 특수 문자로 끝나는 지 물었습니다. 아니요, C 프로그래머처럼 생각하고 있습니다. 파이썬에서는 문자열이 길이와 함께 저장되므로를 포함한 모든 바이트 값 \0
이 문자열에 나타날 수 있습니다.
from __future__ import division
스크립트 시작 부분의 줄 은 버전 2.X Python을 버전 3.X처럼 작동하게합니다
""
은 빈 줄을 의미하지 않습니다. 목록에 넣고 개행과 결합하면 빈 줄이 생길 것입니다.하지만 빈 문자열을 사용하지 않는 다른 장소가 많이 있습니다.
이것은 아마도 가장 좋은 방법 일 것입니다 :
original = "EXAMPLE"
removed = original.replace("M", "")
문자 등을 바꾸는 것에 대해 걱정하지 마십시오. 대부분의 Python 코드는 훨씬 높은 수준의 추상화에서 발생합니다.
M
고유하지 않을 수 있습니다. 이 경우 모든 M
s를 대체합니다 .
n
어커런스 만 바꾸려면을 사용하십시오 original.replace("M", "", n)
.
특정 위치를 바꾸려면 :
s = s[:pos] + s[(pos+1):]
특정 문자를 바꾸려면 :
s = s.replace('M','')
l
입니다. 그런 다음 첫 번째 부분의 pos 제약 조건은이어야합니다 l-1 > pos >= 0
.
문자열은 변경할 수 없습니다. 그러나 목록을 변경할 수있는 목록으로 변환 한 다음 목록을 변경 한 후 목록을 다시 문자열로 변환 할 수 있습니다.
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
기존 문자열에서 원하는 문자를 제외한 모든 것을 가져 와서 다른 문자열처럼 새 문자열을 만들 수도 있습니다 .
str.replace
방법을 사용하지 않습니까?
중간 문자 (예 : M)를 제거하려면 어떻게해야합니까?
파이썬의 문자열은 변경할 수 없기 때문에 할 수 없습니다 .
파이썬의 문자열은 특별한 문자로 끝나나요?
아니요. 문자 목록과 비슷합니다. 리스트의 길이는 문자열의 길이를 정의하며 문자는 터미네이터로 작동하지 않습니다.
중간 문자부터 시작하여 새 문자열을 작성하고 중간 문자를 복사하지 않고 모든 것을 오른쪽에서 왼쪽으로 이동하는 것이 더 좋은 방법은 무엇입니까?
기존 문자열을 수정할 수 없으므로 중간 문자를 제외한 모든 문자열이 포함 된 새 문자열을 만들어야합니다.
translate()
방법을 사용하십시오 :
>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'
None
제거하기 위해 작동하지 않는 것 같습니다).translate( str.maketrans("<>", " ") )
str.maketrans( "", "", "<>")
하고str.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
가변 방식 :
import UserString
s = UserString.MutableString("EXAMPLE")
>>> type(s)
<type 'str'>
# Delete 'M'
del s[3]
# Turn it for immutable:
s = str(s)
card = random.choice(cards)
cardsLeft = cards.replace(card, '', 1)
문자열에서 한 문자를 제거하는 방법 : 다음은 문자열에 문자로 표시되는 카드 스택이있는 예입니다. 그중 하나가 그려집니다 (문자열에서 임의의 문자를 선택하는 random.choice () 함수의 임의 모듈 가져 오기). 새로운 문자열 cardsLeft는 문자열 함수 replace ()에 의해 주어진 나머지 카드를 보유하기 위해 만들어지며, 마지막 매개 변수는 하나의 "카드"만 빈 문자열로 대체됨을 나타냅니다.
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
나는 여기 어딘가에 이것을 보았다 .
"M"을 분리하기 위해 수행 한 작업은 다음과 같습니다.
s = 'EXAMPLE'
s1 = s[:s.index('M')] + s[s.index('M')+1:]
문자열에서 문자를 삭제 / 무시하려는 경우 (예 :이 문자열이있는 경우)
"[11 : L : 0]"
웹 API 응답 또는 CSV 파일과 같은 것에서 요청을 사용한다고 가정 해 봅시다.
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
엘
0
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))