2022. 11. 14. 22:25ㆍ코딩/Python
안녕하세요. 코딩왕 코주부입니다.
Python의 List에 대해 공부한 내용을 정리해봅니다.
많은 도움 되셨음 좋겠네요^^

1. list 선언
list의 선언은 list()
혹은 []
으로 선언할 수 있습니다.
my_list = [] # 리스트 선언
type(my_list)
# <class 'list'>
my_list = list() # 리스트 선언
type(my_list)
# <class 'list'>
2. list 인덱싱 (Indexing)
list의 인덱스은 0부터 시작하여 -1 혹은 리스트의 길이 (length)로 끝납니다.
1) 부분 인덱싱 list[a:b]
or list[a:b:c]
my_list = ['a', 'b', 'c', 'd', 'e']
my_list[1:4] # 인덱스 1(두 번째 요소)부터 4(다섯 번째 요소)까지 총 3개 요소 인덱싱
# ['b', 'c', 'd']
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
my_list[1:7:2] # 인덱스 1(두 번째 요소)부터 7(여덟 번째 요소)까지 2개 단위로 인덱싱
# [2, 4, 6]
my_list = ['a', 'b', 1, 5, 2, 'c']
my_list[3:6:2] # 인덱스 3(네 번째 요소)부터 6까지 2개 단위 인덱싱
# [5, 'c']
2) 전체 인덱싱 list[::]
or list[::-1]
my_list = ['a', 'b', 'c', 'd']
my_list[::] # 전체 요소 인덱싱
#['a', 'b', 'c', 'd']
my_list = [1, 2, 3, 4, 5, 6, 7]
my_list[::2] # 전체 요소를 2칸 단위 인덱싱
#[1, 3, 5, 7]
my_list = [1, 3, 10, 5, 2, 6]
my_list[::-1] # 전체 요소를 뒤에서 앞으로 인덱싱
#[6, 2, 5, 10, 3, 1]
3. list 관련 메소드 (list methods)
1) list.count()
- 리스트 안 해당 요소의 개수 Counting
my_list = [1, 3, '5', 'kobong', 'a', 'kobong']
my_list.count('kobong') # 리스트 내 'kobong' 요소의 개수
#2
2) list.index()
- 리스트 안 특정 인덱스의 요소 값 프린트
my_list = ['a', 'b', 'c', 'd']
my_list.index('c') #요소 'c'의 인덱스를 추출
# 2
3) list.insert()
- 리스트 안 특정 인덱스 위치에 특정 요소 삽입
my_list = ['a', 'b', 'c', 'd', 'e']
my_list.insert(2, 'hi') #2번째 인덱스에 'hi' 문자열을 삽입
# ['a', 'b', 'hi', 'c', 'd', 'e']
4) list.append()
- 리스트의 마지막 인덱스 다음 위치에 object 그대로 삽입
my_list = ['a', 'b', 'c', 'd']
my_list.append(5) # my_list 가장 끝 위치에 int 5 삽입하기
# ['a', 'b', 'c', 'd', 5]
my_list = ['a', 'b', 'c', 'd']
my_list.append([1, 2, 3]) # my_list 가장 끝 위치에 또 다른 list 그대로 삽입하기
# ['a', 'b', 'c', 'd', [1, 2, 3]]
리스트에는 문자열, float, int, list, dictionary, boolean 등의 타입을 모두 사용할 수 있으며
append 메소드는 입력 형태를 그대로 유지한 채로 삽입됩니다.
my_list = [1, 2, 3, 4]
# [1, 2, 3, 4]
my_list.append({'강아지':'dog'}) # dictionary append
# [1, 2, 3, 4, {'강아지':'dog'}]
my_list.append((True, False)) # tuple append
# [1, 2, 3, 4, {'강아지':'dog'}, (True, False)]
my_list.append(['a']) # list append
# [1, 2, 3, 4, {'강아지':'dog'}, (True, False), ['a']]
my_list.append('b') # string append
# [1, 2, 3, 4, {'강아지':'dog'}, (True, False), ['a'], 'b']
5) list.extend()
- 리스트의 마지막 인덱스 다음 위치에 list 타입에 맞춰 요소 이어 붙이기
my_list = ['a', 'b', 'c', 'd']
add_list = [1, 2, 3]
my_list.extend(add_list) # my_list의 끝 위치부터 add_list 그대로 이어 붙이기
# ['a', 'b', 'c', 'd', 1, 2, 3]
append와 extend 메소드의 차이점을 잘 관찰해보세요!
또한 딕셔너리를 extend했을 때 특징을 살펴보세요!
my_list = [1, 2, 3, 4]
# [1, 2, 3, 4]
my_list.extend('a') # list에 문자열 extend
# [1, 2, 3, 4, 'a']
my_list.extend(['b']) # list에 list extend
# [1, 2, 3, 4, 'a', 'b']
my_list.extend((True, False)) # list에 tuple extend
# [1, 2, 3, 4, 'a', 'b', True, False]
my_list.extend({'강아지':'dog'}) # list에 dictionary extend (key만 추가)
# [1, 2, 3, 4, 'a', 'b', True, False, '강아지']
6) list.sort()
- 리스트 내 요소를 오름차순으로 정렬 (숫자는 숫자끼리 동일 타입 요소만 정렬 가능)
my_list = [1, 4, 3, 5, 2]
my_list.sort()
print(my_list)
# [1, 2, 3, 4, 5]
옵션으로 reverse = True 를 입력하면, 내림차순으로 정렬 가능합니다.
my_list = [1, 4, 3, 5, 2]
my_list.sort(reverse = True)
print(my_list)
# [5, 4, 3, 2, 1]
7) list.reverse()
- 리스트 내 요소를 단순히 역으로 뒤집어서 정렬하는
my_list = [1, 4, 3, 5, 2]
my_list.reverse()
print(my_list)
# [2, 5, 3, 4, 1]
8) list.remove()
- 리스트 내 특정 요소를 선택하여 제거
my_list = ['a', 'b', 'kobong', 'c', 'd']
my_list.remove('kobong')
# ['a', 'b', 'c', 'd']
9) list.pop()
- 리스트 내 특정 인덱스를 선택하여 제거 & 프린트
my_list = ['apple', 'banana', 'orange', 'melon', 'grape']
my_list.pop() # 인덱스 선택을 안 하면, 가장 마지막 인덱스 값 제거되고 출력됨
# 'grape'
print(my_list)
# ['apple', 'banana', 'orange', 'melon']
my_list = ['apple', 'banana', 'orange', 'melon', 'grape']
my_list.pop(2) # 인덱스 2의 요소인 'orage'를 추출 & 제거
# 'orange'
print(my_list)
# ['apple', 'banana', 'melon', 'grape']
4. 리스트 관련 함수 (list functions)
1) del list()
≒ list.pop()
- 리스트 내 특정 인덱스의 요소를 제거
my_list = ['a', 'b', 'c', 'd', 'e']
del my_list[3] # 인덱스 3의 요소 'd' 를 제거
# ['a', 'b', 'c', 'e']
2) len(list)
- 리스트의 길이를 반환
my_list = [1, 2, 3, 4, 5]
len(my_list) # list의 길이를 구하자
# 5
3) min(list)
, max(list)
- 리스트 내 요소의 최소값, 최대값
my_list = [0, 3, 5, 6]
min(my_list) # list 내 최소값을 구하라
# 0
max(my_list) # list 내 최대값을 구하라
# 6
4) sorted(list)
- 리스트 내 요소를 오름차순 or 내림차순(reverse =True) 정렬
my_list = [5, 2, 9, 1, 3]
sorted(my_list) # 오름차순으로 정렬
# [1, 2, 3, 5, 9]
my_list = [5, 2, 9, 1, 3]
sorted(my_list, reverse = True) # 내림차순으로 정렬
# [9, 5, 3, 2, 1]
5) set(list)
- 리스트 내 중복을 제거하고 집합{} 형태로 반환
my_list = ['a', 'b', 'b', 'c', 'e', 'e', 'e']
set(my_list) # 중복 제거한 집합을 구하라
# {'a', 'b', 'c', 'e'}
6) collections.Counter(list)
- 리스트 내 요소 각각의 개수를 딕셔너리(dict) 형태로 반환
import collections
my_list = ['a', 'b', 'b', 'c', 'e', 'e', 'e']
collections.Counter(my_list) # list의 각 요소의 개수를 count하라
# Counter({'a': 1, 'b': 2, 'c': 1, 'e': 3})
7) collections.Counter(list).most_common()
- 리스트 내 최대 빈도를 가진 요소를 갯수와 함께 반환
import collections
my_list = ['a', 'b', 'b', 'c', 'e', 'e', 'e']
collections.Counter(my_list).most_common() # 요소 개수 기준으로 최빈순으로 나열하라
# [('e', 3), ('b', 2), ('a', 1), ('c', 1)]
import collections
my_list = ['a', 'b', 'b', 'c', 'e', 'e', 'e']
collections.Counter(my_list).most_common(2) # 최빈순으로 2개 요소를 Count 수와 함께 나열
# [('e', 3), ('b', 2)]
감사합니다^^
'코딩 > Python' 카테고리의 다른 글
[Jupyter Notebook] 주피터 기본 경로(디렉토리) 변경 방법 (0) | 2023.04.23 |
---|---|
[Python] Pandas DataFrame Column 동일한 값 개수 구하는 방법 (Value Count) (0) | 2023.04.22 |
[Python] 파이썬 불변객체와 가변객체 (Immutable/Mutable Object) (0) | 2022.10.23 |
[Python] Apple Mac OS Flask 실행 시 5000 port 중복 오류 해결 (with. AirPlay Receiver) (0) | 2022.08.08 |
[Python] Mac에서 zsh: command not found: python 오류 해결 방법 (0) | 2022.08.06 |