[Python] List 리스트 선언, 인덱싱, 메소드 및 함수 활용하기

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)]

 

감사합니다^^

반응형