파이썬의 리스트

파이썬의 리스트

이 기사에서는 파이썬의 리스트에 대해 설명합니다.

코드 예제를 통해 리스트와 리스트 내포(컴프리헨션)에 대한 다양한 작업을 배울 수 있습니다.

YouTube Video

파이썬의 리스트

파이썬에서 일반적으로 배열로 언급되는 데이터 구조는 보통 '리스트'로 구현됩니다. 파이썬 리스트는 매우 유연하며, 다음과 같은 작업을 수행할 수 있습니다:.

리스트 생성

1# Create an empty list
2my_list = []
3print(my_list)
4
5# Create a list with elements
6my_list = [1, 2, 3, 4, 5]
7print(my_list)
  • 리스트를 비어 있는 상태로 만들거나, 초기 요소를 지정하여 생성할 수 있습니다.

리스트 요소 접근 및 수정

1my_list = [1, 2, 3, 4, 5]
2print(my_list)  # [1, 2, 3, 4, 5]
3
4element = my_list[0]  # Get the element at index 0
5print(element)  # 1
6
7my_list[1] = 10  # Change the element at index 1 to 10
8print(my_list)  # [1, 10, 3, 4, 5]
  • 리스트 요소는 인덱스를 지정하여 접근하거나 수정할 수 있습니다.

리스트 길이 확인하기

1my_list = [1, 2, 3, 4, 5]
2
3length = len(my_list)
4print(my_list)
5print(length)
  • len() 함수를 사용하면 요소의 개수를 얻을 수 있습니다.

리스트에 요소를 추가하거나 삽입하기

1my_list = [1, 2, 3, 4, 5]
2
3my_list.append(6)
4print(my_list)
  • append() 메서드를 사용하면 리스트 끝에 요소를 추가할 수 있습니다.
1my_list = [1, 2, 3, 4, 5]
2
3my_list.insert(2, "A")  # Insert "A" at index 2
4print(my_list)
  • insert() 메서드를 이용하면 원하는 위치에 요소를 삽입할 수 있습니다.

리스트에서 요소 제거하기

1my_list = [1, 2, 3, 4, 5]
2
3del my_list[2]  # Delete the element at index 2
4print(my_list)
5
6removed_element = my_list.pop(0)  # Delete and return the element at index 0
7print(removed_element)
8print(my_list)
  • del 문이나 pop() 메서드를 사용하면 지정한 위치의 요소를 제거할 수 있습니다. pop() 메서드는 삭제된 요소를 반환합니다.
1my_list = [1, 2, 3, 4, 5]
2
3my_list.remove(5)  # Remove the first occurrence of 5 from the list
4print(my_list)
  • remove() 메서드를 사용하면 지정한 값을 갖는 첫 번째 요소를 삭제할 수 있습니다.

리스트 슬라이싱

1my_list = [1, 2, 3, 4, 5]
2
3print(my_list[1:3])  # [2, 3]
4print(my_list[:3])   # [1, 2, 3]
5print(my_list[2:])   # [3, 4, 5]
6print(my_list[:])    # [1, 2, 3, 4, 5]
  • 슬라이싱 구문 [start:end]start부터 end-1까지의 요소를 가져옵니다. start 또는 end를 생략할 수도 있습니다.

리스트 정렬하기

1my_list = [2, 1, 5, 4, 3]
2print(my_list)  # [2, 1, 5, 4, 3]
3
4my_list.sort()  # Sort in ascending order (modifies the list)
5print(my_list)  # [1, 2, 3, 4, 5]
6
7my_list.sort(reverse=True)  # Sort in descending order
8print(my_list)  # [5, 4, 3, 2, 1]
  • sort() 메서드는 리스트를 오름차순 또는 내림차순으로 정렬할 수 있습니다.
1my_list = [3, 1, 4, 2]
2sorted_list = sorted(my_list)
3print(my_list)       # [3, 1, 4, 2]
4print(sorted_list)   # [1, 2, 3, 4]
  • sorted() 함수를 사용하면 원본 리스트를 변경하지 않고 새로 정렬된 리스트를 만들 수 있습니다.

리스트를 역순으로 만들기

1my_list = [1, 2, 3, 4, 5]
2
3my_list.reverse()
4print(my_list)
  • reverse() 메서드는 리스트의 요소 순서를 역으로 바꿀 수 있습니다.

리스트 컴프리헨션

파이썬에서는 강력한 리스트 컴프리헨션 문법을 사용하여 간결하게 리스트를 생성할 수 있습니다. 리스트 컴프리헨션을 사용하면 for-루프를 활용한 리스트 생성을 한 줄로 작성할 수 있습니다. 조건을 추가하여 특정 요소만 추출할 수도 있습니다.

 1# Generate squares of numbers from 0 to 9
 2squares = [x**2 for x in range(10)]
 3print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 4
 5# Use a condition to extract squares of even numbers only
 6even_squares = [x**2 for x in range(10) if x % 2 == 0]
 7print(even_squares)  # [0, 4, 16, 36, 64]
 8
 9# Store either the square or the original number based on a condition
10squares_or_original = [x**2 if x % 2 == 0 else x for x in range(10)]
11print(squares_or_original)
12# Output: [0, 1, 4, 3, 16, 5, 36, 7, 64, 9]
  • 리스트 컴프리헨션을 활용하면 반복문과 조건문을 이용해 새로운 리스트를 간결하게 만들 수 있습니다. ifif-else를 사용하여 조건에 따라 요소를 추출하거나 다른 값을 생성하는 리스트 컴프리헨션을 만들 수 있습니다.

리스트의 연결

 1# Concatenate two lists using the + operator
 2a = [1, 2, 3]
 3b = [4, 5, 6]
 4combined = a + b
 5print(combined)  # [1, 2, 3, 4, 5, 6]
 6
 7# Extend an existing list with another list
 8a = [1, 2, 3]
 9b = [4, 5, 6]
10a.extend(b)
11print(a)  # [1, 2, 3, 4, 5, 6]
12
13# Concatenate multiple lists using unpacking (*)
14a = [1, 2, 3]
15b = [4, 5, 6]
16c = [7, 8, 9]
17merged = [*a, *b, *c]
18print(merged)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 파이썬에서는 + 연산자, extend() 메서드, 또는 언패킹 문법(*)을 이용해 리스트를 연결할 수 있습니다. 새로운 리스트를 만들 때는 + 또는 *를, 기존 리스트를 갱신할 때는 extend()를 사용하는 것이 일반적입니다.

요약

리스트는 Python의 기본 데이터 구조로, 많은 상황에서 사용됩니다. 많은 유연하고 유용한 기능이 있으므로, 이를 익히면 프로그래밍이 더욱 효율적이 됩니다.

위의 기사를 보면서 Visual Studio Code를 사용해 우리 유튜브 채널에서 함께 따라할 수 있습니다. 유튜브 채널도 확인해 주세요.

YouTube Video