Tech & Development/Programming Languages

[Python] 자료형 - 리스트 (List)

Theo (테오) 2023. 1. 18. 19:20
반응형

Python에서 list는 순서가 있는 요소들의 집합을 나타내는 객체입니다. list 객체는 인덱싱, 슬라이싱, 연산, 관련된 함수들(append, extend, insert, remove, pop, count, sort, reverse, ...)를 지원합니다.

  • 순서를 가지며, 인덱싱, 슬라이싱 기능을 지원
  • 수학적 집합의 특성을 가지며, 중복된 요소를 가질 수 있음
  • 변경 가능(mutable) 객체
  • 요소들의 순서를 유지하며, 인덱싱, 슬라이싱 기능을 지원
# list 생성
lst = [1, 2, 3, 4, 5]
print(lst) # [1, 2, 3, 4, 5]

# list 요소 추가
lst.append(6)
print(lst) # [1, 2, 3, 4, 5, 6]

# list 요소 제거
lst.remove(6)
print(lst) # [1, 2, 3, 4, 5]

# list 요소 포함 여부 확인
print(3 in lst) # True

또한, list 객체는 []로도 생성 가능합니다.

lst = [1, 2, 3]
print(lst) # [1, 2, 3]

인덱싱은 list[index] 형식으로 특정 요소를 참조할 수 있고, 슬라이싱은 list[start:end] 형식으로 특정 범위의 요소들을 참조할 수 있고, list.index(element) 함수를 사용하여 특정 요소의 인덱스를 알아낼 수 있습니다.

lst = [1, 2, 3, 4, 5]
print(lst[2]) # 3
print(lst[1:3]) # [2, 3]
print(lst.index(3)) # 2

list를 set으로 변환하려면 set() 함수를 사용합니다.

lst = [1, 2, 3, 4, 5]
s = set(lst)
print(s) # {1, 2, 3, 4, 5}

set() 함수는 입력된 객체를 set 자료형으로 변환합니다.

  • set() 함수로 변환된 set은 원본 list 객체와 다른 메모리 공간을 사용
  • list를 set으로 변환하면, set의 순서를 유지하지 않음
  • set은 수학적 집합 개념으로, 중복된 요소를 허용하지 않음

리스트 연산

list는 순서가 있는 요소들의 집합을 나타내는 객체로, 리스트 연산을 통해 다양한 연산을 수행 할 수 있습니다.

합집합 (+)

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

교집합 (&)

list1 = [1, 2, 3]
list2 = [2, 3, 4]
intersection = set(list1) & set(list2)
intersection_list = list(intersection)
print(intersection_list) # [2, 3]

차집합 (-)

list1 = [1, 2, 3]
list2 = [2, 3, 4]
diff = set(list1) - set(list2)
diff_list = list(diff)
print(diff_list) # [1]

대칭 차집합 (^)

list1 = [1, 2, 3]
list2 = [2, 3, 4]
symmetric_diff = set(list1) ^ set(list2)
symmetric_diff_list = list(symmetric_diff)
print(symmetric_diff_list) # [1, 4]

리스트 곱셈 (*)

list1 = [1, 2, 3]
list2 = list1 * 3
print(list2) # [1, 2, 3, 1, 2, 3, 1, 2, 3]

리스트 정렬

list를 정렬하는 방법에는 다음과 같은 방법이 있습니다.

list.sort() method

기본적으로 오름차순으로 정렬하며, 원본 리스트를 정렬합니다.

lst = [3, 1, 2, 5, 4]
lst.sort()
print(lst) # [1, 2, 3, 4, 5]

sorted() 함수

오름차순으로 정렬하며, 원본 리스트를 변경하지 않습니다.

lst = [3, 1, 2, 5, 4]
sorted_lst = sorted(lst)
print(sorted_lst) # [1, 2, 3, 4, 5]

list.sort(key=...) method

key 값에 해당하는 값을 기준으로 정렬합니다.

lst = [{"age": 20, "name": "John"}, {"age": 25, "name": "Alex"}]
lst.sort(key=lambda x: x["age"])
print(lst) # [{"age": 20, "name": "John"}, {"age": 25, "name": "Alex"}]

list.sort(key=..., reverse=True) method

정렬 순서를 내림차순으로 변경합니다.

lst = [3, 1, 2, 5, 4]
lst.sort(reverse=True)
print(lst) # [5, 4, 3, 2, 1]
반응형