본문 바로가기
Python_Wiki/Python_Syntax

(순서)자료형(data type) - 리스트

by yj-data 2025. 5. 27.

리스트 (lists)

  • 가장 많이 사용
  • 리스트는 여러 자료를 모아서 사용할 수 있는 형태의 자료. 여러 요소를 하나의 변수로 사용하고 싶을 때 사용
  • list: Create
    • 대괄호[ ] 자료를 쉼표로 구분함. 대괄호 안에 들어가는 것들은 요소라고 부른다 (영어로 element)
  • list: update
    • 변수[인덱스] = "변경할 값"
  • list: delete - del / remove / pop / clear
    • del 변수[인덱스]
  • 리스트 자료의 인덱싱과 슬라이싱
    • 인덱싱은 문자를 내부의 문자 하나를 선택하는 연산자
    • 슬라이싱은 문자열의 특정 범위를 선택한 연산자
    • 리스트 기호 [ ] 안에 숫자를 넣어서 인덱싱 혹은 슬라이싱을 하는데 그 안에 들어가는 숫자를 인덱스라고 부름
  • 리스트 연산자: +(덧셈), *(반복), len()(길이구하기)
    • 예, list1 = [1,2,3], list2 = [4,5,6]
    • print(list1*2 + list2) = [1,2,3,1,2,3,4,5,6] => len = 9
  • 함수
    • +(덧셈), *(반복), len()(길이구하기)
    • 정렬
      • .sort(): 리스트 순서대로 정렬. 리스트 전용 메소드.
        • 리턴 따로 없는 함수임. 바로 원본데이터 수정이 일어남. 변수1.sort()을 변수2에 넣어서 변수2를 호출하면 오류남. 바로 변수1 그대로 부르면 정렬이 된 데이터가 호출되는 것을 볼 수 있음.
        • 디폴트가 오름차순, 내림차순으로 하려면 .sort(reverse=True). 
        • sorted(변수명, [reverse = True]) 도 있음. 원본을 바꾸지 않고, 정렬된 새 리스트 반환. sorted는 모든 반복가능한 객체에 사용할 수 있음(리스트, 튜플, 딕셔너리 키 등).
          • 예, numbers = [3, 1, 4, 2]
            new_list = sorted(numbers)
            print(new_list)   # [1, 2, 3, 4]
      • .reverse(): 리스트 뒤집기 / 변수명[::-1] 도 .reverse 와 동일한 기능
        • [::2] 하면 0부터 시작했을 때, 2개씩 띄엄띄엄 뽑기. 1,2,3,4,5 있으면 1,3,5뽑아줌
    • 추가
      • .append(x): 리스트에 요소 추가
        • 변수2 = 변수1 하고나서, 변수 2를 수정하면 변수 1도 수정됨. 메모리도 함께 이동하기 때문. 따라서 변수 1,2를 별도로 두고싶으면 변수2 = 변수1.copy() 해야함. 값만 복사하고, 메모리영역은 복사하지 않음.
        • .append(x)만 추가되는 것이고, 
          x = [1, 2, 3]
          y = x
          x = x + [4]  #이런식으로 더하면 메모리 영역은 따로 복사되지 않음

          print(x)  #1,2,3,4
          print(y)  #1,2,3
      • .insert(a,b): 리스트 요소삽입, 리스트 a 번째 위치에 b 를 삽입
        • list3.insert(1,"hello") => [1,"hello",2,3]
      • .extend(x): 리스트 확장 - 덧셈과 같은 역할
        • 예, list3 = [1,2,3]에 [1,2]를
        • list3.append([1,2]) => [1,2,3,[1,2]]
        • list3.extend([1,2]) => [1,2,3,1,2]
    • 삭제
      • .remove(x): 리스트에서 처음으로 나오는 x를 제거
        • list3.remove(1) => [2,3]
      • .pop(): 리스트 요소 끄집어내기, () = 제일 끝 요소 뽑기, (x) = 특정 위치 뽑기(예, (1))
        • lastWord = list3.pop()  => lastWord = 3
        • list3.pop() 하고나서 list3를 return하면 [1,2] 이렇게 호출됨 
      • .clear() : 리스트 모든 값 제거. 빈 리스트만 남게됨.
    • 검색
      • .count(x): 리스트에 포함된 요소 x의 개수세기
      • .find(x): 첫번째 x의 위치 찾기
      • index(x): x의 인덱스 값 반환