파이썬 리스트를 숫자로 - paisseon liseuteuleul susjalo

a = [1, 2, 3, 4]

파이썬에서 리스트 안의 숫자 요소들을 문자로 변경하려면 어떻게 해야할까요? 저는 위와 같은 리스트를 다음과 같은 리스트로 바꾸고 싶은 것입니다.

a = ['1', '2', '3', '4']

한 가지 생각해볼 수 있는 방법은 숫자 요소들을 str() 함수(숫자를 문자로 바꿔주는 함수)에 넣어줘서 하나씩 문자로 바꾸는 것입니다. 그러려면 for 문을 사용하던가 해야겠죠. 조금 번거롭습니다. 

좀 더 나은 방법이 있습니다. map() 함수를 사용하는 것입니다. map() 함수의 사용법은 다음과 같습니다. 

map(함수명, 리스트)

map() 함수는 list, tuple 등과 같이 반복 가능한(iterable) 객체의 요소들 각각에 어떠한 처리를 할 수 있도록 해줍니다. 따라서, 

map(str, a)

와 같이 코딩해주면 a의 요소들을 문자형으로 모두 바꿔줄 것입니다. 그런데 map() 함수는 반환값으로 map 객체를 반환하기 때문에 리스트의 형태가 되게 하려면 반환값을 list() 함수에 넣어줘야 합니다. 

list(map(str, a))

파이썬 리스트를 숫자로 - paisseon liseuteuleul susjalo

관련 글

☞ [python] 숫자 여러 개 한 번에 입력받기, input(), split(), map() 함수

참고자료

[1] www.geeksforgeeks.org/python-map-function/, GeeksforGeeks, "Python map() function"

(이 글은 2021-4-13에 마지막으로 수정되었습니다.)

파이썬에서 List의 모든 요소들을 하나의 문자열 객체로 변환하는 방법을 소개합니다.

1. 반복문으로 리스트의 모든 요소들을 하나의 문자열로 변환

for loop를 이용하여 리스트를 문자열로 변환하는 코드를 구현할 수 있습니다.

def listToString(str_list):
    result = ""
    for s in str_list:
        result += s + " "
    return result.strip()


str_list = ['This', 'is', 'a', 'python tutorial']
result = listToString(str_list)
print(result)

Output:

This is a python tutorial

2. String.join()으로 리스트의 모든 요소들을 하나의 문자열로 변환

join()을 이용하면 다음과 같이 리스트를 문자열로 변환할 수 있습니다.

str_list = ['This', 'is', 'a', 'python tutorial']
result = ' '.join(s for s in str_list)
print(result)

Output:

This is a python tutorial

3. join()으로 숫자가 포함된 리스트를 문자열로 변환

리스트가 문자열로만 구성되어있지 않고 숫자가 포함되었을 때, 위의 코드는 실행 중에 exception이 발생합니다.

다음 코드는 숫자를 문자열로 변환하고, join()으로 문자열을 연결합니다.

str_list = ['There', 'is', 4, "items"]
result = ' '.join(str(s) for s in str_list)
print(result)

Output:

4. map()으로 숫자가 포함된 리스트를 문자열로 변환

다음 코드는 map()을 이용하여 숫자를 문자열로 변환합니다. list comprehension을 사용한 위의 코드보다 더 간단합니다.

str_list = ['There', 'is', 4, "items"]
result = ' '.join(map(str, str_list))
print(result)

Output:

References

  • RealPython - list and tuple

  • Python - 리스트 평균 구하기, 3가지 방법
  • Python - 딕셔너리에서 최대값, 최소값 찾기
  • Python - 문자열에서 특수문자 제거, 숫자 제거, 숫자만 남기기
  • Python - 2차원 리스트(배열) 선언, 초기화
  • Python - 두 리스트 비교, 4가지 방법
  • Python - 문자열에서 문자의 Index 찾기
  • Python - 리스트에서 최대, 최소 값 찾기
  • Python - for문에서 index 사용하기, 3가지 방법
  • Python 소수점 반올림, round() 예제
  • 파이썬 주석 처리, 단축키 소개
  • Python - String isdigit(), 문자열이 숫자인지 확인
  • Python 소수점 버림, 4가지 방법
  • Python - Text 파일 읽고 쓰는 방법 (read, write, append)
  • Python - String Formatting의 다양한 방법 정리(%, Str formatting, f-stirng)
  • Python - os.path.join(), 폴더와 파일명으로 Path 생성
  • Python - 파일을 읽고 한 줄씩 리스트에 저장
  • Python - 문자열에서 줄바꿈(\n) 제거, 3가지 방법
  • Python - Switch Case 구현 방법 (Match Case)
  • 우분투에 Python 3.10 설치하는 방법
  • Python - 문자열에서 특정 문자 제거, 3가지 방법
  • Python - 함수 정의 및 호출 방법

codechachaCopyright ©2019 codechacha

숫자열(int) 리스트를 문자열(str)로 변환하거나,

반대로 문자열(str) 리스트를 숫자열(int)로 변환하는 방법은 다음과 같습니다.

> li = [1,2,3,4,5]
> print(map(str,li))
['1', '2', '3', '4', '5']

> li = ['1', '2', '3', '4', '5']
> print(map(int,li))
[1, 2, 3, 4, 5]

map() 함수를 활용해주세요~

저작자표시비영리변경금지

'python' 카테고리의 다른 글

Standard output, 터미널 창에 결과 뿌리는 방법  (0) 2021.10.29
python | format 함수를 사용하지 않고 10진수를 2진수로 변환하기  (0) 2020.08.05
python | format 함수를 사용한 2진수 8진수 16진수 변환  (0) 2020.08.05
python | 재귀함수(recursive function)를 이용한 팩토리얼(factorial)  (0) 2020.08.03
python | if 조건문 없이 짝수번, 홀수번 찾는 더욱 간단한 방법  (0) 2020.07.31