본문 바로가기

작업 공간/프로그래밍 [파이썬 기초] 5. 리스트와 튜플 그리고 딕셔너리

by 서울나기 2020. 1. 22.

1. 리스트 list

여러 개의 값을 함께 모아서 관리할 수 있는 기능.

[요소1, 요소2, ...] 대괄호 [ ] 안에 리스트 항목이 들어간다.
my_list1 = [] # 빈 리스트 저장. 빈 리스트에 나중에 값을 추가할 수 있다.
my_list2 = [1, 2, 3] # 각각의 함에 1, 2, 3 저장
my_list3 = ['a', 'b'] # 각각의 함에 a, b 저장

 

.append() 메소드

리스트에 값을 넣을 때 사용하는 메소드

my_list = [] # 빈 리스트를 준비한다.

my_list.append(123) # 상수 123을 첫번째 칸에 넣는다.
my_list.append('abc') # 문자 abc를 두번째 칸에 넣는다.
my_list.append(True) # 참을 세번째 칸에 넣는다.

print(my_list) # [123, 'abc', True] 출력. 리스트 안에 3개의 값이 들어갔다.

리스트도 인덱싱을 할 수 있다. 각 주소에 있는 요소를 바꾸거나, 지우거나, 가져올 수 있다.

my_list = [123, 'abc', True]

my_list[0] = False # 인덱스 [0]에 False를 입력
my_list[1] = 123 # 인덱스 [1]에 123을 입력
my_list[2] = 'cba' # 인덱스 [2]에 cba를 입력


print(my_list[0]) # False 출력
print(my_list[1]) # 123 출력
print(my_list[2]) # cba 출력

del my_list[0] # del을 쓰면 해당 인덱스 값이 지워지면서 뒤의 요소가 앞으로 당겨져 온다.

print(my_list[0]) # 123 출력

마찬가지로 슬라이싱도 할 수 있다. 대괄호와 콜론을 이용해보자.

my_list = [123, 'abc', True]

print(my_list[:1]) # [123] 출력
print(my_list[1:2]) # ['abc'] 출력
print(my_list[1:]) # ['abc', True] 출력
더 알아보기 https://docs.python.org/ko/3/tutorial/datastructures.html

 

len() 함수

리스트에 몇 개의 항목이 있는지 보여주는 함수.

my_list = [3, 2, 5, 1, 4]
print(len(my_list)) # 5 출력

 

.sort() 메소드

리스트 안에 있는 요소를 순서대로 정렬하는 메소드.

my_list = [3, 2, 5, 1, 4]
alphabet = ['b', 'a', 'd', 'c', 'e']

my_list.sort()
alphabet.sort()

print(my_list) # [1, 2, 3, 4, 5] 출력
print(alphabet) # ['a', 'b', 'c', 'd', 'e'] 출력

 

.conut() 메소드

해당 리스트 요소의 개수를 세는 메소드.

number = [1, 2, 1, 2, 2, 5, 9]
fruit = ['사과', '바나나', '사과', '멜론']

print(number.count(2)) # 2가 3개니까 3 출력
print(fruit.count('사과')) # '사과'가 2개니까 2 출력

메소드는 인터넷에 검색하면 다 나오기 때문에 이런 요소가 있다 정도만 숙지해도 된다.

 

in 키워드

리스트 안에 어떤 값이 있는지 없는지 확인하는 키워드

my_list = ['a', 'b', 'c', 'd']

print('a' in my_list) # 'a'가 my_list에 있나? 있으니까 True 출력
print('e' not in my_list) # 'f'는 my_list에 없나? 없으니까 True 출력

2. 튜플 tuple 

리스트와 비슷하지만 값을 변경할 순 없다. 처음에 값을 정하고 바꾸고 싶지 않을 때 필요하다.

(요소1, 요소2, ...) 리스트와는 다르게 소괄호를 쓴다.
my_tuple1 = ()
my_tuple2 = (1,) # (1)로 쓰면 숫자로 인식하기 때문에 콤마를 붙인다.
my_tuple3 = ('a', 'b', 'c')
my_tuple4 = 3.14, 'Python', True # 소괄호를 안써도 된다.

 

패킹 / 언패킹

여러 개의 값을 하나로 묶는 것, 언패킹은 값을 풀어내는 것.

my_tuple = 3.14, 'Python', False # 패킹
i, s, b = (123, 'abc', True) # 언패킹, 묶여있는 값을 각각의 변수에 집어넣는다.

3. 딕셔너리 dictionary

리스트 방식을 확대한 기능으로 키와 값을 입력할 수 있다.

리스트는 [ 대괄호 ], 튜플은 ( 소괄호 ), 딕셔너리는 { 중괄호 }를 사용한다.

{키1: 값1, 키2: 값2, ...}
# 딕셔너리 예제
my_dict1 = {1: 'a', 2: 'b'} # 키1에 'a', 키2에 'b'를 집어 넣는다.
my_dict2 = {'a': 1, 'b': 2} # 키'a'에 1, 키'b'에 2를 집어 넣는다.

# 딕셔너리에 값을 집어 넣기
my_dict = {} # 빈 딕셔너리를 만든다.

# 변수[키] = 값 / 키와 값을 집어 넣으라는 명령
my_dict[1] = 'a' # my_dict에 {1: 'a'}를 넣어라.
my_dict['b'] = 2 # my_dict에 {'b': 2}를 넣어라.
my_dict['c'] = 5 # my_dict에 {'c': 5}를 넣어라.

print(my_dict) # {1: 'a', 'b': 2, 'c': 5} 출력

# print(my_dict[키]) / 딕셔너리 출력하기
print(my_dict[1]) # 'a' 출력
print(my_dict['c']) # 5 출력

# 딕셔너리 값 지우기
del my_dict['b']
print(my_dict) # {1: 'a', 'c': 5} 출력

 

.values()

딕셔너리에서 값만 뽑아오는 메소드.

my_dict = {'이름': '팽수', '나이': '10살', '몸무게': '비밀' }
for val in my_dict.values():
    print(val) # 팽수, 10살, 비밀 출력

 

.keys()

딕셔너리에서 키만 뽑아오는 메소드.

my_dict = {'이름': '팽수', '나이': '10살', '몸무게': '비밀' }
for val in my_dict.keys():
    print(val) # 이름, 나이, 몸무게 출력

 

.items()

딕셔너리에서 키와 값 둘 다 뽑아오는 메소드. 두 개를 뽑아와야 하니 변수도 2개가 있어야 한다. 변수가 하나면 (키, 값) 튜플로 저장된다.

my_dict = {'이름': '팽수', '나이': '10살', '몸무게': '비밀' }
for key, val in my_dict.items():
    print(key, val)

결과 값

댓글