파이썬, 문자열 붙이기 할줄 아시는분 있나요 ?
글쓴이: Sailor_moon / 작성시간: 금, 2011/02/18 - 3:03오후
안녕하세요 , 파이썬으로 , 문자열을 가지고 intersection 과 union 연산을
하려고 합니다. 그런데 문자열에 append 가 안된다고 자꾸 나오네요 ...
코드:
def union(s1, s2): res = s1[:] #copy s1 to temporary variable for x in s2: #for every character in s2 if x not in s1: #if that is not in s1 res.append(x) # append it return res #################INTERSECTION OPERATIONS ############ def intersection(s1, s2): res = [] #empty set for x in s1: if x in s2: res.append(x) return res def compareString(): string1 = newline_15.split(' ')[-1] string2 = newline_150.split(' ')[-1] #cut off the both string kyojiphap= intersection(string1,string2) hapjiphap= union(string1,string2) return True ################## 여기 까지는 스트링 함수 ...... .... newline_15 = newline_15.strip() newline_150 = newline_150.strip() #좌우의 공백을 자른 후에 ... loopDecider = compareString() 스트링 비교 함수로 넘깁니다. </code? 이런식으로 ,,, 스트링 두개를 인자로 전달하게끔 했는데 ..잘 돌다가 문자열을 붙이는 부분에서만 에러가 납니다 왜이렇게 되나요 ?
Forums:
파이썬에서 문자열 오브젝트는 immutable입니다.
파이썬에서 문자열 오브젝트는 immutable입니다. 즉 변경이 되지 않습니다.
따라서 append같은 메소드가 제공되지 않습니다.
res.append() 대신 res += 을 사용하도록 하세요.
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
ganadist 님 방법 또는 mutable
ganadist 님 방법 또는 mutable string concatenation을 하고 싶으시면 http://docs.python.org/library/stringio.html
제생각엔 그냥 요런식이면 되지 않을까 싶네요.
일단 리스트로 만들고 그냥 join시키는거요..
def intersection(s1, s2):
return "".join([x for x in s1 if x in s2])
댓글 달기