파이썬 리스트 구조에 자료 삽입하는 방법

조회수 897회

두 개의 CSV 자료가 있는데, 하나는 좌표 X,Y축 자료 다른 하나는 속한 그룹이 어디인지를 나타내는 자료 입니다. 자료의 형태는 아래와 같습니다.

#좌표 CSV
x,y
126.9604, 37.55781
126.9729, 27.56278
126.9734, 37.56292
126.9797, 37.56395
126.8711, 37.56713
126.9934, 37.55459
126.9934, 37.55459
126.6453, 37.45654
126.9875, 37.45642
#그룹 넘버 좌표 CSV
1
1
1
2
2
2
2
3
3

해당 자료를 통해 그룹 넘버가 같은 좌표는 같은 리스트에 포함되게 만들고 싶습니다. 예를 들면아래와 같습니다

[{126.9604, 37.55781},{126.9729, 27.56278},{126.9734, 37.56292}]    #1번 그룹
[{126.9797, 37.56395},{126.8711, 37.56713},{126.9934, 37.55459},{126.9934, 37.55459}]   #2번 그룹
[{126.6453, 37.45654}, {126.9875, 37.45642}]   #3번 그룹

어떻게 작성해야 그룹 넘버를 반영할 수 있을까요? 부탁드립니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • hash(python에선 dictionary)를 쓰면 좋을 것 같네요.

    csv를 읽는 방법은 이미 알고 계시다고 생각해, 따로 설명하진 않겠습니다. 그룹 넘버를 key로, key의 value는 좌표값을 저장하는 리스트로 형태로 하면 될 듯합니다.

    coordinates = [
        [126.9604, 37.55781],
        [126.9729, 27.56278],
        [126.9734, 37.56292],
        [126.9797, 37.56395],
        [126.8711, 37.56713],
        [126.9934, 37.55459],
        [126.9934, 37.55459],
        [126.6453, 37.45654],
        [126.9875, 37.45642]
    ]
    group_numbers= [
        1,
        1,
        1,
        2,
        2,
        2,
        2,
        3,
        3
    ]
    
    answer = {}
    
    for group_number, coord in zip(group_numbers, coordinates):
        try:
            answer[group_number].append(coord)
        except KeyError:
            answer[group_number] = [coord]
    
    print(answer)
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)