[Solved][Python3]TypeError: expected str instance, int found

seungmi yang·2022년 2월 7일
0

[ 작업 환경 ]
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 상호 변환 중 에러를 만났고,이게 우리 마지막 만남이길 바란다...

  1. string을 list로: list(string_name)
mylist = list(mystring)
  1. list를 string으로: ''.join(list_name)
''.join(result)

여기서 끝이 아니다.

[ 해결 방법 ]
String으로 변환시 ''.join(list_name)을 쓸 때,
list의 모든 element들은 문자여야 한다.

''.join(['4','5','6'])    ## O 456 출력
''.join([4,'5',6])        ## X 에러출력 ㅠㅠ

이제
List -> String, String -> List 문제없다 :)

profile
개발을 잘하고 싶은 개발자

0개의 댓글