전체 방문자
오늘
어제
이대코
ServerNeverDown
이대코
  • 분류 전체보기 (110)
    • Project (9)
      • GASIP_대학 커뮤니티 (5)
      • CATCHROOM_야놀자중고숙박거래 (2)
      • CANCER-FINE_암환자를 위한 정보 제공 사.. (2)
    • Development (46)
      • Python (9)
      • Java (8)
      • Kotlin (1)
      • Spring&Springboot (4)
      • BootCamp (10)
      • DevOps (1)
      • TrobleShooting (6)
      • Network (1)
      • DataBase (2)
      • OS (1)
      • Design Pattern (2)
    • Coding Test (52)
      • BOJ (1)
      • DFS,BFS (4)
      • 그리디 알고리즘 (6)
      • Dynamic Programming (2)
      • 이진 탐색 (0)
      • 초보자를 위한 파이썬 300제 (29)
      • 구현 (10)
    • Stock (3)
      • Market View (2)
      • Analysis of stocks (0)
      • Knowledge (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

인기 글

hELLO · Designed By 정상우.
이대코

ServerNeverDown

Development/Python

[Python] 리스트 인덱스 중복하는 경우

2023. 3. 29. 19:05

안녕하세요. Harry입니다.

 

본 포스팅의 목적은, 코딩테스트를 준비함에 있어 스스로 공부한 지식을 정리하고자 합니다.

 

배경 : 2차원 리스트를 생성하는 다양한 방법이 있는데, 방법에 따라 리스트 내 각 요소의 인덱스가 중복되는 경우가 있어 활용 시 혼란스러운 상황 경험.

 

1. 리스트 인덱스가 중복하는 경우

duplication = [[0]] * 5

duplication[0].append(1)
print(duplication)

위와 같이 duplication 이라는 2차원리스트를 생성한 후 인덱스가 0인 내부 리스트에 1을 더한 경우 아래와 같이 출력될 것이라 기대했습니다.

[[0, 1], [0], [0], [0], [0]]

하지만 실제 출력 결과는 아래와 같습니다.

[[0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]

2차원 리스트의 영역을 넓히고자 할 때, 단순히 원하는 양만큼 곱해준다면 인덱스가 중복되는 것으로 인식됩니다.

 

그렇기 때문에 인덱스 중복을 피하기 위해선 아래와 같이 작성해야합니다.

 

2. 리스트 인덱스가 중복하지 않는 경우(반복문 활용)

Non_duplication = [[0] for i in range(5)]

Non_duplication[0].append(1)
print(Non_duplication)

단순 곱이 아닌 반복문을 활용하여 작성해 준다면, 인덱스가 중복하지 않습니다.

[[0, 1], [0], [0], [0], [0]]

3. 리스트 인덱스가 중복하지 않는 경우(단순 곱 + 반복문)

만약 1,2번을 동시에 쓴다면 어떻게 될까요??

Non_duplication = [[0]*5 for i in range(5)]

Non_duplication[0].append(1)
print(Non_duplication)

2번 식에서 [0]*5를 작성하여 추가해보았습니다.

 

[[0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

위와 같이 리스트 인덱스가 중복되지 않는 것으로 확인했습니다.

 

감사합니다.

저작자표시 비영리 변경금지 (새창열림)

'Development > Python' 카테고리의 다른 글

[코딩테스트 대비] python 메서드 및 라이브러리 활용 정리  (1) 2023.05.06
[Python] 문자열을 한 줄에 출력하는 방법(print)  (0) 2023.04.01
[독학 파이썬] 파이썬 ord 메서드 활용법 정리(feat.chr)  (2) 2023.02.01
[Python] input함수 대신 sys.stdin.readline 활용하기  (0) 2022.12.30
[Python] input 함수 활용하여 원하는 만큼 리스트 내 원소 자동생성하기  (0) 2022.12.30
    'Development/Python' 카테고리의 다른 글
    • [코딩테스트 대비] python 메서드 및 라이브러리 활용 정리
    • [Python] 문자열을 한 줄에 출력하는 방법(print)
    • [독학 파이썬] 파이썬 ord 메서드 활용법 정리(feat.chr)
    • [Python] input함수 대신 sys.stdin.readline 활용하기
    이대코
    이대코
    20대에 대장암 걸린 코틀린/자바 백엔드 개발자의 블로그입니다.

    티스토리툴바