[Python] List 데이터로 Dictionary 만들기

Jae Gyeong Lee·2024년 2월 16일
0

2개의 리스트 데이터를 활용해, 딕셔너리 데이터 생성

a = ['_', '나', '다', '라', '가나', '다라', '가나다', '라마바', '사아자', '차카타파', '가나다라마', '가나다라마바', '가나다라마바사', '아자차카타파하', '1234567']
b = ['0', '1', '1', '1', '2', '2', '3', '3', '3', '4', '5', '6', '7', '7', '7']

리스트 데이터 b가 같은 값을 key값으로, a가 같는 값을 value로 그룹화하는 딕셔너리 생성(grouped_text)

grouped_text = {}
for text, row in zip(a, b):
    if row not in grouped_text:
        grouped_text[row] = []
    grouped_text[row].append(text)

print(grouped_text)

{'0': ['_'], '1': ['나', '다', '라'], '2': ['가나', '다라'], '3': ['가나다', '라마바', '사아자'], '4': ['차카타파'], '5': ['가나다라마'], '6': ['가나다라마바'], '7': ['가나다라마바사', '아자차카타파하', '1234567']}

key값이 동일한 value들을 리스트 데이터 내 하나의 변수 값으로 합침(result_lines)

sorted_rows = sorted(grouped_text.keys(), key=int)
result_lines = []
for row in sorted_rows:
    line = ", ".join(grouped_text[row])
    result_lines.append(line)

print(result_lines)

['_', '나, 다, 라', '가나, 다라', '가나다, 라마바, 사아자', '차카타파', '가나다라마', '가나다라마바', '가나다라마바사, 아자차카타파하, 1234567']

동일한 key값을 같은 row에 출력되도록 계행 추가

result = "\n".join(result_lines)
print(result)

_
나, 다, 라
가나, 다라
가나다, 라마바, 사아자
차카타파
가나다라마
가나다라마바
가나다라마바사, 아자차카타파하, 1234567

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글