길이가 다른 많은 문자열을 포함하는 목록을 고려해 보겠습니다. 이 기사에서는 각 그룹에서 문자열의 길이가 같은 요소를 그룹으로 묶는 방법을 볼 것입니다.
for 루프 사용
목록의 모든 요소를 반복하고 길이가 기존 요소의 길이와 일치하는 목록에만 발생하는 for 루프를 설계합니다.
예
listA = ['Monday','Thursday','Friday','Saturday','Sunday'] # Given list print("Given list : \n",listA) # Categorize by string size len_comp = lambda x, y: len(x) == len(y) res = [] for sub_list in listA: ele = next((i for i in res if len_comp(sub_list, i[0])), []) if ele == []: res.append(ele) ele.append(sub_list) # Result print("The list after creating categories : \n",res)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list : ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] The list after creating categories : [['Monday', 'Friday', 'Sunday'], ['Thursday', 'Saturday']]
정렬 및 그룹화 사용
이 접근 방식에서는 먼저 길이에 따라 모든 요소를 촬영한 다음 itertools 모듈의 일부인 기능별로 그룹화를 적용합니다.
예
from itertools import groupby listA = ['Monday','Thursday','Friday','Saturday','Sunday'] # Given list print("Given list : \n",listA) # Categorize by string size get_len = lambda x: len(x) sub_list = sorted(listA, key = get_len) res = [list(ele) for i, ele in groupby(sub_list, get_len)] # Result print("The list after creating categories : \n",res)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list : ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] The list after creating categories : [['Monday', 'Friday', 'Sunday'], ['Thursday', 'Saturday']]