Python 리스트, 튜플

김경호·2024년 5월 5일

Python

목록 보기
5/7
post-thumbnail

1. 리스트

리스트(List)

  • 파이썬에서 가장 자주 사용되는 데이터 구조
  • 순서가 있는 컬렉션
  • 요소의 추가, 삭제, 수정이 자유로움
  • 동일한 요소의 중복 저장 가능
  • 다양한 데이터 타입을 하나의 리스트에 저장 가능

리스트 생성

  • 대괄호 []를 사용해 생성

    numbers = [1, 2, 3, 4, 5]

중첩리스트

  • 리스트 안에 또 다른 리스트를 포함시키는 것
  • 중첩 리스트는 2차원 행렬과 유사하게 데이터를 구조화하는 데 사용될 수 있으며, 데이터를 행과 열로 구성하여 저장하고 관리하는 데 유용

    grid = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
    ]
    #특정 요소 접근
    print(grid[0]) # 출력: [1, 2, 3]
    print(grid[0][0]) # 출력: 1
    print(grid[1][1]) # 출력: 5
    print(grid[2][2]) # 출력: 9
    #전체 리스트 출력
    for row in grid:
    print(row)

문자열 나누기 - 리스트 반환

  • split() 메서드는 문자열을 특정 구분자로 나누어 리스트로 반환
  • 구분자 미지정시 공백 기준으로 반환

    string = "Hello, world, Python"
    print(string.split())
    #출력화면
    ['Hello,', 'world,', 'Python']

리스트 인덱싱과 슬라이싱

  • 리스트의 특정 위치에 접근하려면 인덱스사용
  • 슬라이스를 사용하여 여러 요소 선택

    print(numbers[0]) # 첫 번째 요소
    print(numbers[-1]) # 마지막 요소
    print(numbers[2:4]) # 인덱스 2부터 3까지 요소

리스트 요소 수정

  • 리스트의 요소를 수정하려면, 해당 요소의 인덱스를 사용하여 새 값을 할당

    my_list = [10, 20, 30, 40, 50]
    my_list[1] = 25 # 두 번째 요소 값을 25로 수정
    print(my_list) # 결과: [10, 25, 30, 40, 50]
    my_list[4] = 100 # 다섯 번째 요소 값을 100으로 수정
    print(my_list) # 결과: [10, 25, 30, 40, 100]

리스트 결합

  • +연산자를 사용해 두개 이상의 리스트 결합가능하며 기존리스트에 영향 없음

    old_list = [5, 6, 7]
    new_list = [1, 2, 3, 4]
    result = a + new_list
    print(result) # 출력: [5, 6, 7, 1, 2, 3, 4]

리스트 요소 추가 삭제

  • 영구적인 추가를 위해 append() 사용

    numbers.append(6) # 리스트 끝에 6 추가
    print(numbers)
    numbers.insert(1, 9) # 인덱스 1에 9 삽입
    print(numbers)
    numbers.remove(9) # 값 9 삭제
    print(numbers)
    del numbers[0] # 첫 번째 요소 삭제
    print(numbers)

리스트에서 특정 요소 위치 찾기

  • index() 메서드는 리스트에서 특정 요소의 위치를 찾는데 사용
  • list.index(element) 형태로 사용되며, 여기서 element는 리스트에서 찾고자 하는 요소

#리스트 생성
my_list = [10, 20, 30, 40, 50]
#특정 요소의 위치 찾기
element = 30
index = my_list.index(element)
print(f"{element}의 위치는 {index}입니다.")

for 반복문과 리스트 컴프리헨션(List Comprehension)

  • 컴프리헨션을 통해 for 반복문을 사용하여 리스트, 딕셔너리, 세트 등 간결하게 생성 가능
  • 특정 조건을 만족하는 요소로 구성된 새 리스트를 만들기 위해 컴프리헨션을 사용

    squares = [x**2 for x in range(10)] # 0부터 9까지의 수의 제곱으로 리스트 생성
    #다음과 같은 for문과 동일결과 생성
    squares = []
    for x in range(10):
    squares.append(x**2)

2. 튜플

튜플(Tuple)

  • 튜플은 리스트와 비슷하지만 한번 생성하면 수정할 수 없는 불변의 속성을 가져 생성 후 요소의 변경이 불가능하다
  • 순서가 있는 컬렉션
  • 메모리 사용이 리스트보다 효율적

튜플 생성, 인덱싱과 슬라이싱

  • 소괄호()를 사용하거나 괄호없이 요소를 나열하는 것도 가능

    my_tuple = (1, 2, 3)
    another_tuple = 4, 5, 6
    print(my_tuple[0])
    print(another_tuple[1:3])

튜플 내 리스트 포함

  • 튜플 내 리스트 포함하여 생성가능(리스트 외에 숫자와 문자열도 포함 가능)
  • 튜플내 리스트는 수정 및 추가 가능

    mixed_tuple = (1, "apple", [2, 4, 6])
    print(mixed_tuple)
    print("Original Tuple:", mixed_tuple)
    mixed_tuple[2][0] = 3
    print("Modified Tuple:", mixed_tuple)
    mixed_tuple[2].append(8)
    print("Modified Tuple:", mixed_tuple)

3. 리스트 & 튜플 변환

list() 함수

  • 다양한 반복 가능한(iterable) 데이터(예: 튜플, 집합, 딕셔너리의 키 또는 값 등)를 리스트로 변환
  • 데이터를 순서가 있는 컬렉션인 리스트로 변환하여, 요소의 추가, 삭제, 수정이 필요할 때 사용할 수 있게 해줌

튜플을 리스트로 변환

my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list) # 출력: [1, 2, 3]

tuple() 함수

  • 리스트와 같은 반복 가능한 데이터를 튜플로 변환
  • 튜플은 불변의 데이터 구조이므로, 변환된 튜플을 사용하면 데이터의 안정성을 보장받을 수 있음
  • 데이터가 변경될 필요가 없고, 읽기 전용으로 사용될 때 유용

    리스트를 튜플로 변환

    my_list = [1, 2, 3]
    my_tuple_from_list = tuple(my_list)
    print(my_tuple_from_list) # 출력: (1, 2, 3)

profile
취미해킹

0개의 댓글