프로그래밍/python

파이썬 재활 - 1차원 배열 (리스트)

기록합시다 2025. 2. 24. 18:42
# 1차원 배열
  • 리스트

      #다양한 자료형을 저장할 수 있음.
      my_list = [1,2,3,4,5]
    
      #빈 리스트 생성
      my_list = []
    
      #리스트 값 수정
      my_list[0] = 10
      print(my_list) #[10,2,3,4,5]
    
      #리스트 길이 확인
      len(my_list)
    
      #리스트에 값 추가
      my_list.append(6)
      print(my_list) #[10,2,3,4,5,6)
    
      #리스트에 값 삭제
      #1.remove()
      my_list.remove(3)
      print(my_list) #[10,2,4,5]
    
      #2.pop()
      my_list = [10, 2, 3, 4, 5]
      popped_value = my_list.pop(1)  # 인덱스 1에 있는 값을 삭제
      print(my_list)  # [10, 3, 4, 5]
      print(popped_value)  # 2 (삭제된 값)
    
      #3.del()
      my_list = [10, 2, 3, 4, 5]
      del my_list[2]  # 인덱스 2에 있는 값을 삭제
      print(my_list)  # [10, 2, 4, 5]
    
      # 리스트 전체 삭제
      del my_list
      # print(my_list)  # 오류 발생 (my_list는 더 이상 존재하지 않음)
    
  • 리스트 값 for 문

      my_list = [10, 2, 3, 4, 5]
    
      # 기본적인 for 문 사용
      for value in my_list:
          print(value)
  • 리스트 값 받기

      my_list = list(map,(int,input().split()))
  • max(), min(), index() - 위치 찾기

      my_list = [10, 20, 30, 40, 50]
    
      index = my_list.index(30)  # 30이 있는 인덱스를 찾음
      print(index)  # 2
  • 두 리스트의 차이점 찾기 (set 활용)

      list1 = [1, 2, 3, 4]
      list2 = [1, 2, 5]
    
      print(set(list1) - set(list2))  # {3, 4} (list1에만 있는 값)
      print(set(list2) - set(list1))  # {5} (list2에만 있는 값)
      #set을 사용하면 중복된 값이 제거될 수 있으니 주의해야 해!
  • set(집합) 자료형 : 중복 되지 않는 순서 없는 컬렉션

    set 특징:

    1. 중복이 없음: set 안에 같은 값이 두 번 들어갈 수 없음.

    2. 순서가 없음: set은 저장된 값들이 정해진 순서대로 나오는 것이 아니라, 순서가 보장되지 않음.

    3. 변경 가능: set은 값을 추가하거나 삭제할 수 있음.

      # set 생성
      my_set = {3, 4, 5, 6}
      
      # 중복된 값은 자동으로 제거됨
      my_set = {1, 2, 2, 3, 3, 3}  # 중복된 2와 3이 제거됨
      print(my_set)  # {1, 2, 3}
      
      # 순서가 없음
      my_set = {3, 1, 2}
      print(my_set)  # 순서는 예측 불가 (예: {1, 2, 3}일 수도 있지만, {2, 3, 1}일 수도 있음)
  • set의 주요 연산

      #차집합(-): 한 집합에만 있는 값들만 추출.
      set1 = {1, 2, 3}
      set2 = {2, 3, 4}
      print(set1 - set2)  # {1}
      #합집합(|): 두 집합에 있는 모든 값을 합친 집합.
      print(set1 | set2)  # {1, 2, 3, 4}
      #교집합(&): 두 집합에 공통으로 있는 값들만 추출.
      print(set1 & set2)  # {2, 3}
      #여집합(^): 두 집합에만 있는 값들을 추출.
      print(set1 ^ set2)  # {1, 4}
  • set과 list의 차이점

    list순서가 있고, 중복을 허용. 반면에, set순서가 없고, 중복을 허용하지 않음.

      # list 예시
      my_list = [3, 3, 1, 2, 1]
      print(my_list)  # [3, 3, 1, 2, 1] (중복 허용)
    
      # set 예시
      my_set = {3, 3, 1, 2, 1}
      print(my_set)  # {1, 2, 3} (중복 제거됨)
  • 리스트 값을 변수에 직접 할당 → unpacking

      c_list = [1, 2]
    
      a, b = c_list  # 리스트의 첫 번째 값을 a에, 두 번째 값을 b에 할당
      print(a, b)  # 1 2
  • sort() 함수 - 리스트를 오름차순, 내림차순으로 정렬하는 함수

      list.sort()  # 기본은 오름차순 정렬
      numbers = [3, 1, 4, 1, 5, 9]
      numbers.sort(reverse=True)  # 내림차순 정렬
      print(numbers)  # [9, 5, 4, 3, 1, 1]