[모각코] 3회차

2025. 1. 6. 19:06·모각코/2023 동계

 

저번에 웹 크롤링 및 이미지 유사도 비교에 대해서 공부를 해 봤는데요.

폴더를 0, 1, 2 ... 등으로 관리했습니다.

폴더를 리스트화하고

각 폴더를 순회하면서 폴더에 들어 있는 사진들을 각각 비교하게 만들었다가 알게 된 사실이 하나 있습니다.

폴더를 리스트화할 때 사전순으로 정렬한다는 사실인데요.

이 폴더를 0 ~ 12까지 있다고 할 때

순회하는 순서가 0, 1, 11, 12, 2, 3, 4, ... 이라는 것입니다.

 

만약 순회하는 순서를 0, 1, 2, 3, ...으로 하여 마지막에 제일 큰 숫자가 오도록 하고 싶을 때 어떻게 정렬하면 좋을지 고민해 봤습니다.

 

고민하는 데에는 아주 오랜 시간이 걸렸지만 코드는 그리 길지 않습니다 ..

 

자동으로 폴더를 생성해 줄 때

위와 같이 폴더를 생성한 경로를 listdir로 정리하고 출력해 보면 사전순처럼 정렬되어 있는 것을 확인할 수 있습니다.

 

함수들만을 이용해 재정렬할 경우는 다음과 같습니다.

디렉터리 리스트를 int로 매핑해 준 다음 다시 list로 감싸고 sorted 함수로 반환합니다.

참고로 list 객체의 sort 함수는 정렬만 할 뿐 반환값이 없습니다. sorted 함수는 정렬 후 반환까지 해 줍니다.

그렇기에 다시 map 함수를 사용해서 map(str, sorted(...))처럼 감쌀 수 있습니다.

int로 정렬된 리스트를 다시 str로 매핑해 준 다음 리스트로 감싸면 최종적으로 정리가 된 것을 확인할 수 있습니다

 

그런데 함수만을 이용해 전부 처리한다면 간단히 해결할 수 있겠지만 ..

함수를 모르고 있을 경우 어떻게 정렬하면 좋을지 고민을 꽤 꽤 많이 하다가 힌트를 얻어서 해결해 봤습니다 ..

 

다음과 같습니다.

딕셔너리 자료형을 이용하겠습니다.

dir_list에 담긴 폴더의 자릿수를 저장합니다.

예를 들어 0 ~ 9는 cnt가 1일 것이고

11 ~ 99는 cnt가 2일 것입니다.

그런 다음 처음 만들어 둔 attribute_dict에 한 자릿수 키가 없으면 만들어서 각 자릿수에 해당하는 dir들을 전부 넣어 줍니다.

그 다음 정렬시켜서 dict 함수로 감싼 다음 attribute_dict에 저장합니다.

다시 반복문을 사용해서 key와 value를 받아 정렬합니다.

잘 정렬된 요소들을 담을 리스트를 만들고

담아 주면 끝입니다.

 

힌트를 꽤 많이 얻어서 작성하였지만 이렇게 해결할 수 있다는 게 크게 와닿는 것 같습니다 ..

 

 

'모각코 > 2023 동계' 카테고리의 다른 글

[모각코] 6회차  (1) 2025.01.06
[모각코] 5회차  (0) 2025.01.06
[모각코] 4회차  (0) 2025.01.06
[모각코] 2회차  (0) 2025.01.06
[모각코] 1회차  (0) 2025.01.06
'모각코/2023 동계' 카테고리의 다른 글
  • [모각코] 5회차
  • [모각코] 4회차
  • [모각코] 2회차
  • [모각코] 1회차
하가네
하가네
  • 하가네
    하 렌
    하가네
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • Computer Science (23)
        • 운영체제 (7)
        • 데이터통신 (6)
        • 자료구조 (4)
        • 논리회로 (0)
        • 확률 및 통계 (0)
        • 데이터베이스 (2)
        • AI소프트웨어 (3)
        • 컴퓨터네트워크 (1)
      • Language (0)
        • Java (0)
      • Framework (8)
        • Spring (8)
      • Tips (2)
        • 터미널 명령어 (1)
        • 우분투 명령어 에러 (1)
      • SSA (6)
        • Front (1)
        • Back (4)
        • DB (0)
        • 기획 (1)
      • 우아한테크코스 (0)
        • 7기 프리코스 (0)
      • CNU SW 아카데미 (42)
        • 1주차 (5)
        • 2주차 (5)
        • 3주차 (2)
        • 4주차 (1)
        • 5주차 (3)
        • 6주차 (2)
        • 7주차 (0)
        • 8주차 (1)
        • 9주차 (14)
        • 10주차 (0)
        • 11주차 (1)
        • 12주차 (0)
        • 13주차 (2)
        • 14주차 (2)
        • 15주차(최종 프로젝트) (3)
        • 최종 프로젝트 이후 (1)
      • 모각코 (6)
        • 2023 동계 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.
하가네
[모각코] 3회차
상단으로

티스토리툴바