Python : List

m_ngyeong·2024년 10월 7일
0

Python

목록 보기
2/17
post-thumbnail

🐍 Python


List(리스트)

리스트(list)는 파이썬에서 여러 값을 하나의 변수에 저장할 수 있는 데이터 타입이다. 리스트는 대괄호([])로 정의하며, 다양한 자료형을 포함할 수 있다. 즉, 리스트는 정수, 문자열, 부동 소수점, 다른 리스트까지 포함할 수 있으며 순서가 있는 데이터 모음이다. 따라서 자주 수정되는 데이터에 적합하다.

  • 형태: 대괄호([])
  • 순서(order)의 개념이 존재: 리스트의 각 요소는 인덱스(index)로 접근할 수 있으며, 인덱스는 0부터 시작
  • 변경 가능(mutable): 리스트는 생성된 후에 요소를 변경, 추가, 삭제할 수 있음
  • 다양한 데이터 타입을 가질 수 있음: 리스트는 숫자, 문자열, 다른 리스트 등 여러 종류의 데이터를 함께 저장할 수 있음

리스트 생성

# 빈 리스트 생성
empty_list = []

# 정수 리스트
numbers = [1, 2, 3, 4, 5]

# 문자열 리스트
fruits = ['apple', 'banana', 'cherry']

# 혼합된 데이터 타입 리스트
mixed_list = [1, 'apple', 3.14, True]

# 리스트 안에 리스트 (중첩 리스트)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

리스트 내포 (List Comprehension)

리스트 컴프리헨션은 짧고 간결하게 리스트를 생성하는 방법이다.

# 0부터 9까지의 제곱을 구하는 리스트
squares = [x**2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

함수 사용

리스트를 특정 규칙에 따라 생성할 수도 있다. 예를 들어, range() 함수를 사용하여 리스트를 만들 수 있다.

even_numbers = list(range(0, 11, 2))  # 0부터 10까지 짝수 리스트 생성
print(even_numbers)  # [0, 2, 4, 6, 8, 10]

list() 함수 사용

list() 함수를 사용하여 다른 데이터 타입을 리스트로 변환할 수 있다.

string_to_list = list("hello")  # 문자열을 리스트로 변환
print(string_to_list)  # ['h', 'e', 'l', 'l', 'o']

리스트의 기본 연산

인덱싱(Indexing)

리스트의 각 요소는 인덱스로 접근할 수 있으며, 인덱스는 0부터 시작한다.

fruits = ['apple', 'banana', 'cherry']
print(fruits[0])  # 'apple'
print(fruits[2])  # 'cherry'

슬라이싱(Slicing)

리스트의 일부분을 잘라내서 가져올 수 있다. 즉, 리스트의 원소 일부를 연속해서 또는 일정한 간격으로 꺼내 새로운 리스트를 만든다.

fruits = ['apple', 'banana', 'cherry', 'orange', 'grape']
print(fruits[1:4])  # ['banana', 'cherry', 'orange'] (인덱스 1에서 3까지)
print(fruits[-3:-1]) # ['cherry', 'orange'] (뒤에서 3-1 번째부터 1 번째까지)
  • s[:] : list s의 원소를 모두 출력
  • s[:n] : 맨 앞부터 n-1 번까지 출력
  • s[n:] : n 번째부터 맨 끝까지 출력
  • s[n:m] : n 번째부터 m-1 번까지 출력
  • s[-n:] : 뒤에서 n-1번째부터 맨 끝까지 출력
  • s[::k] : 맨 앞부터 k개씩 건너뛰며 출력
  • s[::-1] : 맨 끝부터 전부 출력

리스트 길이 확인 : len()

fruits = ['apple', 'banana', 'cherry']
print(len(fruits))  # 3

리스트 요소 추가 : append(x) / insert(i, x)

  • append(x) : 리스트 끝에 x항목을 추가, fruits[len(fruits):] = [x]와 동일
  • insert(i, x) : 주어진 위치 ix항목을 삽입
    • i : 삽입되는 요소가 갖게 될 인덱스
      a.insert(0, x) 는 리스트의 처음에 삽입하고, a.insert(len(a), x)a.append(x) 와 동등
fruits = ['apple', 'banana']
fruits.append('cherry')  # 리스트 끝에 'cherry' 추가
print(fruits)  # ['apple', 'banana', 'cherry']

fruits.insert(1, 'orange')  # 인덱스 1에 'orange' 삽입
print(fruits)  # ['apple', 'orange', 'banana', 'cherry']

리스트 요소 삭제 : remove(x) / pop([i]) / clear()

  • remove(x) : x와 같은 첫 번째 항목을 삭제
  • pop([i]) : 목록에서 주어진 위치에 있는 항목을 제거하고 반환
    인덱스가 지정되지 않으면 a.pop()은 목록에서 마지막 항목을 제거하고 반환
  • clear() : 리스트의 모든 항목을 삭제, del a[:] 와 동등
fruits = ['apple', 'banana', 'cherry']
fruits.remove('banana')  # 'banana' 삭제
print(fruits)  # ['apple', 'cherry']

# 인덱스를 이용해 삭제
fruits.pop(1)  # 인덱스 1의 요소 삭제
print(fruits)  # ['apple']

fruits.clear()  # 리스트의 모든 항목을 삭제
print(fruits)  # []

리스트 병합 : + 연산자

list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list)  # [1, 2, 3, 4, 5, 6]

리스트 정렬 : sort(*, key=None, reverse=False)

리스트의 항목들을 제자리에서 정렬한다.

numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers)  # [1, 1, 3, 4, 5, 9]

fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
fruits.sort()
print(fruits)  # ['apple', 'apple', 'banana', 'banana', 'kiwi', 'orange', 'pear']

+ 리스트 메서드들

  • list.extend(iterable) : 리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장.
    a[len(a):] = iterable 와 동등
  • list.count(x) : 리스트에서 x 가 등장하는 횟수를 돌려줌.
  • list.index(x[, start[, end]]) : 리스트에 있는 항목 중 값이 x 와 같은 첫 번째 것의 0부터 시작하는 인덱스를 돌려주고 그런 항목이 없으면 ValueError 를 일으킴.
    선택적인 인자 startend 는 슬라이스 표기법처럼 해석되고, 검색을 리스트의 특별한 서브 시퀀스로 제한하는 데 사용됨. 돌려주는 인덱스는 start 인자가 아니라 전체 시퀀스의 시작을 기준으로 함.
  • list.reverse() : 리스트의 요소들을 제자리에서 뒤집음.
  • list.copy() : 리스트의 얕은 사본을 돌려주고 a[:] 와 동등.
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

fruits.extend(['pear'])
print(fruits)  # ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana', 'pear']

print(fruits.count('apple'))  # 2
print(fruits.index('banana'))  # 3
print(fruits.index('banana', 4))  # 6, Find next banana starting at position 4

fruits.reverse()
print(fruits)  # ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']


참고,
https://docs.python.org/ko/3/tutorial/datastructures.html

profile
ʚȉɞ

0개의 댓글