IT story

파이썬에서 특정 위치에 문자열 추가

hot-time 2020. 7. 6. 07:12
반응형

파이썬에서 특정 위치에 문자열 추가


파이썬에서 문자열의 특정 위치에 값을 삽입하는 데 사용할 수있는 함수가 있습니까?

이 같은:

"3655879ACB6"다음 위치에 4 추가 "-""3655-879ACB6"


아니요. 파이썬 문자열은 변경할 수 없습니다.

>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

그러나 문자가 삽입 된 새 문자열을 만들 수 있습니다.

>>> s[:4] + '-' + s[4:]
'3558-79ACB6'

이것은 매우 쉬운 것 같습니다 :

>>> hash = "355879ACB6"
>>> hash = hash[:4] + '-' + hash[4:]
>>> print hash
3558-79ACB6

그러나 함수와 같은 것을 좋아한다면 다음과 같이하십시오.

def insert_dash(string, index):
    return string[:index] + '-' + string[index:]

print insert_dash("355879ACB6", 5)

문자열을 변경할 수없는 또 다른 방법은 문자열을 목록으로 바꾸는 것입니다. 그런 다음 슬라이싱 트릭없이 색인화하고 수정할 수 있습니다. 그러나 목록을 문자열로 다시 가져 오려면 .join()빈 문자열 을 사용해야 합니다.

>>> hash = '355879ACB6'
>>> hashlist = list(hash)
>>> hashlist.insert(4, '-')
>>> ''.join(hashlist)
'3558-79ACB6'

이것이 성능과 어떻게 비교되는지 확실하지 않지만 다른 솔루션보다 눈이 더 쉽다고 생각합니다. ;-)


이것을 달성하는 간단한 기능 :

def insert_str(string, str_to_insert, index):
    return string[:index] + str_to_insert + string[index:]

파이썬에서 특정 위치에 문자열을 추가 하는 매우 유용한 방법을 만들었습니다 .

def insertChar(mystring, position, chartoinsert ):
    longi = len(mystring)
    mystring   =  mystring[:position] + chartoinsert + mystring[position:] 
    return mystring  

예를 들면 다음과 같습니다.

a = "Jorgesys was here!"

def insertChar(mystring, position, chartoinsert ):
    longi = len(mystring)
    mystring   =  mystring[:position] + chartoinsert + mystring[position:] 
    return mystring   

#Inserting some characters with a defined position:    
print(insertChar(a,0, '-'))    
print(insertChar(a,9, '@'))    
print(insertChar(a,14, '%'))   

우리는 출력으로 가질 것입니다 :

-Jorgesys was here!
Jorgesys @was here!
Jorgesys was h%ere!

많은 인서트를 원한다면

from rope.base.codeanalyze import ChangeCollector

c = ChangeCollector(code)
c.add_change(5, 5, '<span style="background-color:#339999;">')
c.add_change(10, 10, '</span>')
rend_code = c.get_changed()

참고 URL : https://stackoverflow.com/questions/5254445/add-string-in-a-certain-position-in-python

반응형