요소가 숫자로 구성된 리스트에 join 함수 사용하기

Python3.6 · 2019. 9. 28. 17:44

숫자로 구성된 리스트에 join 함수를 사용했더니 'TypeError: sequence item 0: expected str instance, int found' 에러가 발생했다.

에러를 읽어보니 문자열인 경우만 join 함수 사용이 가능한 것 같다.

map 함수를 사용하면 리스트의 각 요소를 원하는 함수의 수행 결과로 바꿀 수 있다.

 

map 함수의 리턴값은 오브젝트여서 리턴값을 확인하려면 list로 형변환 시켜주어야 했다.

>>> num_list = [4, 9, 16, 25, 36]
>>> map_result = map(str, num_list)
>>> map_result
<map object at 0x10d86d4a8>
>>> list(map_result)
['4', '9', '16', '25', '36']

 

어쨌든, join 함수까지 적용시켜주면 다음과 같은 결과물을 얻을 수 있다.

>>> num_list = [4, 9, 16, 25, 36]
>>> str_num_list = ", ".join(map(str, num_list))
>>> str_num_list
'4, 9, 16, 25, 36'

 

(추가)

단순히 integer인 리스트의 요소를 string으로 바꿔주고 싶다면 리스트 컴프리헨션을 사용해도 된다.

>>> num_list = [4, 9, 16, 25, 36]
>>> str_num_list_lc = [str(n) for n in num_list]
>>> str_num_list_map = list(map(str, num_list))
>>> str_num_list_lc
['4', '9', '16', '25', '36']
>>> str_num_list_map
['4', '9', '16', '25', '36']

 

참고자료1 : https://wikidocs.net/32#map

참고자료2 : https://wikidocs.net/22805