[ 작업 환경 ]
Python3
[ 문제 상황 ]
TypeError: sequence item 0: expected str instance, int found
[ 문제 원인 ]
result = [4, 5, 4, '*', 6, 7, '-', 9, '-', 3]
이렇게 생긴 list를 String 문자열로 치환하기 위해
print("".join(result))를 사용했다.
[ 포인트 ]
이 에러를 이해하기 위해
List vs String
둘을 비교해보았다.
List: mutable하다. string과 비교했을 때 list의 가장 강력한 점이다. list_name[1] = (새로운 값)과 같은 형태로 저장된 값을 바꿀 수 있다. print(list_name)으로 출력했을 때는 [(첫 번째 원소), (두 번째 원소), ...] 과 같이 출력된다.
String: immutable하다. string_name[1]로 값을 읽는 것은 가능하지만, string_name[1] = (새로운 값)과 같은 형태로 저장된 값을 변경하는 것은 불가능하다.
나는 List <-> String 상호 변환 중 에러를 만났고,이게 우리 마지막 만남이길 바란다...
mylist = list(mystring)
''.join(result)
여기서 끝이 아니다.
[ 해결 방법 ]
String으로 변환시 ''.join(list_name)을 쓸 때,
list의 모든 element들은 문자여야 한다.
''.join(['4','5','6']) ## O 456 출력
''.join([4,'5',6]) ## X 에러출력 ㅠㅠ
이제
List -> String, String -> List 문제없다 :)