특정 인덱스에서 문자 바꾸기
특정 인덱스에서 문자열의 문자를 바꾸려면 어떻게 해야 합니까?예를 들어, abc와 같은 문자열에서 중간 문자를 가져오려고 하는데, 사용자가 지정한 문자와 문자가 동일하지 않으면 바꾸려고 합니다.
이런 거 아닐까요?
middle = ? # (I don't know how to get the middle of a string)
if str[middle] != char:
str[middle].replace('')
Python에서 문자열은 불변이므로 원하는 인덱스에 값을 포함하는 새 문자열을 생성하면 됩니다.
문자열이 있다고 가정할 때s
아마s = "mystring"
원하는 인덱스의 일부를 원본의 "슬라이스" 사이에 배치하여 신속하게(분명히) 바꿀 수 있습니다.
s = s[:index] + newstring + s[index + 1:]
당신은 당신의 끈 길이를 2로 나누면 중간을 찾을 수 있습니다.len(s)/2
미스터리 입력을 받는 경우 예상 범위를 벗어나는 인덱스를 처리하도록 주의해야 합니다.
def replacer(s, newstring, index, nofail=False):
# raise an error if index is outside of the string
if not nofail and index not in range(len(s)):
raise ValueError("index outside given string")
# if not erroring, but the index is still not in the correct range..
if index < 0: # add it to the beginning
return newstring + s
if index > len(s): # add it to the end
return s + newstring
# insert the new string between "slices" of the original
return s[:index] + newstring + s[index + 1:]
이는 다음과 같이 작동합니다.
replacer("mystring", "12", 4)
'myst12ing'
문자열의 문자는 바꿀 수 없습니다.문자열을 목록으로 변환하고 문자를 바꾼 다음 다시 문자열로 변환합니다.
>>> s = list("Hello world")
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> s[int(len(s) / 2)] = '-'
>>> s
['H', 'e', 'l', 'l', 'o', '-', 'W', 'o', 'r', 'l', 'd']
>>> "".join(s)
'Hello-World'
Python의 문자열은 불변이므로 일부를 대체할 수 없습니다.
그러나 수정된 새 문자열을 생성할 수 있습니다.이전 문자열에 대한 다른 참조는 업데이트되지 않으므로 의미론적으로 동일하지 않습니다.
예를 들어 다음과 같은 함수를 작성할 수 있습니다.
def replace_str_index(text,index=0,replacement=''):
return '%s%s%s'%(text[:index],replacement,text[index+1:])
또는 f-timeout 도입 이후:
def replace_str_index(text,index=0,replacement=''):
return f'{text[:index]}{replacement}{text[index+1:]}'
그런 다음 예를 들어 다음과 같이 부릅니다.
new_string = replace_str_index(old_string,middle)
대체할 문자를 입력하지 않으면 새 문자열에 제거할 문자가 포함되지 않으므로 임의 길이의 문자열을 입력할 수 있습니다.
예를 들어:
replace_str_index('hello?bye',5)
돌아올 것입니다'hellobye'
그리고:
replace_str_index('hello?bye',5,'good')
돌아올 것입니다'hellogoodbye'
.
# Use slicing to extract those parts of the original string to be kept
s = s[:position] + replacement + s[position+length_of_replaced:]
# Example: replace 'sat' with 'slept'
text = "The cat sat on the mat"
text = text[:8] + "slept" + text[11:]
고양이가 돗자리에 앉았습니다.
O/P : 고양이는 돗자리에서 잠을 잤습니다.
특정 인덱스 사이에 문자열을 바꿔야 하는 경우에도 아래 방법을 사용할 수 있습니다.
def Replace_Substring_Between_Index(singleLine,stringToReplace='',startPos,endPos):
singleLine = singleLine[:startPos]+stringToReplace+singleLine[endPos:]
return singleLine
언급URL : https://stackoverflow.com/questions/41752946/replacing-a-character-from-a-certain-index
'programing' 카테고리의 다른 글
WPF 앱 내에서 특정 디렉터리로 Windows 탐색기를 여는 방법은 무엇입니까? (0) | 2023.05.06 |
---|---|
창에서 큰 텍스트 파일을 분할하는 방법은 무엇입니까? (0) | 2023.05.06 |
현재 소프트웨어 업데이트 서버에서 Xcode를 사용할 수 없습니다. (0) | 2023.05.06 |
AWS EC2 인스턴스에 Python 3을 설치하려면 어떻게 해야 합니까? (0) | 2023.05.06 |
기존 스키마에서 테이블 관계 다이어그램 생성(SQL Server) (0) | 2023.05.06 |