List와 Dictionary에 대해 알아보자.¶
아래 코드를 보면서 List를 이해하자.¶
In [1]:
# -*- coding: utf-8 -*-
ten_things = "Apple Oranges Crows Telephone Light Sugar"
print("잠깐 아직 목록에 10개가 들어 있지 않으니 한 번 고쳐 보자.")
# space bar 1칸을 공백으로 split
stuff = ten_things.split(' ')
more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn", "Banana", "Girl", "Boy"]
# stuff 원소가 10개가 되면 loop를 멈춰라
while len(stuff) != 10:
# pop()은 가장 마지막 원소를 뱉고, 그 원소는 리스트에서 빠진다.
next_one = more_stuff.pop()
print("추가: ", next_one)
stuff.append(next_one)
print("이제 {} 항목이 있습니다.".format(len(stuff)))
print("한 번 볼까요!", stuff)
print(stuff[1])
print(stuff[-1]) # 워어! 복잡해
print(stuff.pop())
# stuff라는 리스트의 엘리먼트를 스페이스 공백으로 연결해라.
print(' '.join(stuff)) # 뭐? 멋져!
# stuff라는 리스트의 3,4 엘리먼트를 '#'으로 연결해라.
print('#'.join(stuff[3:5])) # 엄청나구나!
pop¶
pop( )은 가장 마지막(최근에 들어온) 엘리먼트를 뱉고, 그 원소는 리스트에서 빠진다.
다음을 보면서 이해하자.
In [2]:
more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn", "Banana", "Girl", "Boy"]
more_stuff
Out[2]:
In [3]:
more_stuff.pop()
Out[3]:
In [4]:
more_stuff
Out[4]:
In [5]:
more_stuff.pop()
Out[5]:
In [6]:
more_stuff
Out[6]:
In [7]:
more_stuff.pop()
Out[7]:
In [8]:
more_stuff
Out[8]:
split과 join¶
아래의 예처럼 사용하므로 사용법을 익혀두자.
In [9]:
ten_things = "Apple Oranges Crows Telephone Light Sugar"
ten_things
Out[9]:
In [10]:
stuff = ten_things.split(' ')
stuff
Out[10]:
In [11]:
re = ' '.join(stuff)
re
Out[11]:
간단한 예를 살펴 보자.¶
In [12]:
info = {'name':'Zed', 'age':36, 'height':6*12 +2}
In [13]:
info
Out[13]:
dict의 인덱싱¶
In [14]:
info['age']
Out[14]:
In [15]:
info['height']
Out[15]:
In [16]:
info['name']
Out[16]:
자료를 넣는 것도 아래처럼 직관적이며, 간단하다.¶
In [17]:
info
Out[17]:
In [18]:
info['city'] = 'San Francisco'
In [19]:
info
Out[19]:
In [20]:
# 아래처럼 문자열 대신 숫자도 key값으로 추가가 가능하다.
info[1] = 'Wow'
info[2] = 'Kaka'
In [21]:
info
Out[21]:
Dict에서 자료 삭제는 del을 사용한다.¶
In [22]:
del info[1]
info
Out[22]:
In [23]:
del info[2]
info
Out[23]:
아래 코드를 리뷰해 보자.¶
In [24]:
# -*- coding: utf-8 -*-
# 도 이름에서 약자로의 mapping을 만든다.
states = {
'충청북도': '충북',
'경상북도': '경북',
'전라남도': '전남',
'경기도': '경기',
'강원도': '강원'
}
# 기본적인 도와 도시 묶음을 만들자.
cities = {
'전남': '광주',
'강원': '원주',
'경북': '대구'
}
# 도시 몇 개를 더 써보자.
cities['경기'] = '수원'
cities['충북'] = '충주'
# 도시를 출력
print('-' * 10)
print("경기도에는", cities['경기'])
print("충청북도에는", cities['충북'])
# 도를 출력
print('-' * 10)
print("강원도의 약자는", states['강원도'])
print("경상북도의 약자는", states['경상북도'])
# 도 이름 사전과 도시 사전을 차례로 써보자.
print('-' * 10)
print("강원도에는", cities[states['강원도']])
print("경상북도에는", cities[states['경상북도']])
# 도 이름 약자를 모두 출력
print('-' * 10)
for state, abbrev in states.items():
print("{}의 줄임말은 {}입니다.".format(state, abbrev))
# 도에 있는 도시를 모두 출력해 보자.
print('-' * 10)
for abbrev, city in cities.items():
print("{}에는 {}시가 있습니다.".format(abbrev, city))
# 둘을 한 번에 해보자.
print('-' * 10)
for state, abbrev in states.items():
print("{}의 줄임말은 {}이고 {}시가 있습니다.".format(state, abbrev, cities[abbrev]))
print('-' * 10)
# 없을 수도 있는 도 이름 약자를 안전하게 받아 오자.
state = states.get('제주도', None)
if not state:
print("제주도는 없습니다.")
# 도시를 기본값을 넣고 가져오자.
city = cities.get('제주', '없습니다.')
print("제주의 시는 {}".format(city))
states.items( )¶
아래의 예를 보고 이 method 사용법을 익혀보자.
In [25]:
states
Out[25]:
In [26]:
states.items()
Out[26]:
states.items( ) 메소드는 key와 value를 (key, value)의 튜플로 변환시켜준다.¶
for 문에 dict를 함께 돌릴 때, 사용하도록 하자!
list와 dict 언제 무엇을 써야 할까?¶
리스트
- 항목을 담으며, 순서가 있는 구조로 정리함
사전
- 키를 값으로 자료를 mapping 함
- 이름, 주소 등 key가 될 만한 식별자를 이용해 value를 꺼내야할 때 → dict
- 순서를 지키지 않아도 될때 → dict
- 순서를 지켜야 하면 리스트를 사용
- key와 value를 함께 넣거나 뺄 때 → dict와 del을 사용