Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python – 구분 기호가 포함된 문자열 리스트를 튜플 리스트로 변환하는 방법

구분 기호(delimiter)가 포함된 문자열 리스트를 튜플 리스트로 변환해야 하는 경우가 종종 있습니다. 이럴 때는 구분 기호 값 K를 설정한 뒤, 리스트 컴프리헨션(list comprehension)과 split 메서드를 함께 사용하면 간단하게 처리할 수 있습니다.

예제

아래는 실제 동작 과정을 보여주는 예시입니다.

my_list = ["33-22", "13-44-81-39", "42-10-42", "36-56-90", "34-77-91"]

print("The list is : " )
print(my_list)

print("The sorted list is ")
my_list.sort()
print(my_list)

K = "-"
print("The value of K is ")
print(K)

my_result = [tuple(int(element) for element in sub.split(K)) for sub in my_list]
print("The resultant list is : ")
print(my_result)

출력 결과

The list is :
['33-22', '13-44-81-39', '42-10-42', '36-56-90', '34-77-91']
The sorted list is
['13-44-81-39', '33-22', '34-77-91', '36-56-90', '42-10-42']
The value of K is
-
The resultant list is :
[(13, 44, 81, 39), (33, 22), (34, 77, 91), (36, 56, 90), (42, 10, 42)]

코드 설명

  • 먼저 문자열로 이루어진 리스트를 정의하고 콘솔에 출력합니다.

  • sort 메서드를 사용해 리스트를 오름차순으로 정렬한 뒤 다시 출력합니다.

  • 구분 기호로 사용할 K 값을 정의하고 콘솔에 표시합니다.

  • 리스트 컴프리헨션으로 리스트를 순회하면서, 각 문자열을 split(K)으로 분리하고 각 조각을 int로 변환한 후 tuple로 묶습니다.

  • 변환된 결과를 변수에 할당합니다.

  • 최종 결과를 콘솔에 출력합니다.

동작 원리

핵심은 리스트 컴프리헨션 내부의 표현식입니다. sub.split(K)는 각 문자열을 하이픈(-)을 기준으로 잘라 부분 문자열의 리스트를 반환합니다. 이어서 제너레이터 표현식 int(element) for element in ...가 각 부분 문자열을 정수로 변환하고, 최종적으로 tuple()이 이 값들을 하나의 튜플로 묶어줍니다. 덕분에 길이가 서로 다른 문자열(예: 2개 또는 4개의 숫자로 구성된 문자열)도 문제없이 처리할 수 있습니다.