Python 리스트 외
7. 리스트
리스트란, 순서를 가지는 객체의 집합이다.
리스트를 만들 때에는 대괄호([])로 감싸주고, 요소값은 쉼표(,)로 구분해준다.
리스트 = [ 요소1, 요소2, 요소3]
- 리스트의 연산
+
: 리스트 더하기 (= 리스트 합치기)
a = [ 0, 1, 2 ]
b = [ 7, 8, 9 ]
>>> print( a + b )
[0, 1, 2, 7, 8 , 9]
*
: 리스트 반복하기
a = [ 0, 1, 2 ]
>>> print( a * 2 )
[0, 1, 2, 0, 1 , 2]
- 리스트 처리함수
subway = [ "동래", "서면", "남포" ]
- append : 리스트 추가하기
subway.append("해운대")
>>> print(subway)
['동래', '서면', '남포', '해운대']
- insert : 리스트 사이에 추가하기
subway.insert(1,"센텀")
>>> print(subway)
['동래', '센텀', '서면', '남포', '해운대']
- pop : 리스트 요소 꺼내기
>>> print(subway.pop())
>>> print(subway)
해운대
['동래', '센텀', '서면', '남포']
num = [5,3,4,1,2]
- sort : 리스트 정렬하기
>>> num.sort()
>>> print(num)
[1, 2, 3, 4, 5]
- reverse : 리스트 뒤집기
>>> num.reverse()
>>> print(num)
[5, 4, 3, 2, 1]
- clear : 리스트 모두 삭제하기
>>> num.clear()
>>> print(num)
[]
- extend : 리스트 확장하기
>>> subway.extend(num)
>>> print(subway)
['동래', '센텀', '서면', '남포', 5, 4, 3, 2, 1]
8. 딕셔너리
딕셔너리란, 말 그대로 사전이란 뜻으로 키(key)와 값(value)를 쌍으로 갖는 자료형이다. 리스트와의 차이점은 리스트는 값을 다루기 위해 인덱스를 사용하지만, 딕셔너리는 키를 사용해 관련된 정보를 연관시킨다.
dic = {Key1:Value1, Key2:Value2, Key3:Value3}
위와 같이 딕셔너리는 중괄호({})안에 Key:Value 형태로 이루어져 있으며 쉼표(,)로 구분한다.
info = {1:"사과",2:"포도",3:"망고"}
- 딕셔너리 추가하기
>>> info[4] = "수박"
>>> print(info)
{1: '사과', 2: '포도', 3: '망고', 4: '수박'}
- 딕셔너리 삭제하기
>>> del info[2]
>>> print(info)
{1: '사과', 3: '망고', 4: '수박'}
- 딕셔너리 사용함수
- get : key 로 value 얻기
>>> print(info.get(3))
망고
위처럼 get
을 이용하여 key로 value를 얻을 수 있다. 이때 괄호는 ()(소괄호)를 사용한다.
만약 존재하지 않는 키를 가져오라고 할 경우, 아래처럼 오류가 발생하게 된다.
>>> print(info.get(5))
None
>>> print(info[5])
KeyError: 5
info.get(5)는 None을 출력시키고, info[5]는 오류를 발생시키고 프로그램이 종료된다. 만약 값이 있다면 값을 가져오고, 값이 없을 경우 다른 텍스트를 출력하고 싶을 때는 아래와 같이 쓸 수 있다.
>>> print(info.get(5,"사용가능"))
사용가능 # 값이 없을 경우 출력
- in : key 가 딕셔너리 안에 있는지 알아보기
>>> print(3 in info)
>>> print(5 in info)
True
False
- keys : key 들만 출력하기
>>> print(info.keys())
dict_keys([1, 3, 4])
- values : value 들만 출력하기
>>> print(info.values())
dict_values(['사과', '망고', '수박'])
- items : key, value 모두 출력하기
>>> print(info.items())
dict_items([(1, '사과'), (3, '망고'), (4, '수박')])
- clear : key, value 모두 지우기
>>> info.clear()
>>> print(info)
{}
9. 튜플
튜플은 리스트와 비슷하지만, 리스트는 값을 []로 감싸고, 튜플은 값을 ()로 감싼다.
리스트는 값의 수정, 삭제가 가능하지만 튜플은 수정과 삭제가 불가능하다.
a = ( 1, 2, 3, 4, 5, 6, 7, 8)
- 인덱싱과 슬라이싱
튜플은 리스트처럼 인덱싱과 슬라이싱이 가능하다.
>>> print(a[0])
>>> print(a[4])
>>> print(a[6])
1
5
7
>>> print(a[:5])
>>> print(a[2:6])
>>> print(a[3:])
(1, 2, 3, 4, 5)
(3, 4, 5, 6)
(4, 5, 6, 7, 8)
- 기본연산
튜플은 리스트처럼 +,*가 가능하다.
a = ( 1, 2, 3, 4, 5, 6, 7,8)
b = ("q" , "w" , "e" , "r", "t")
>>> print(a+b)
(1, 2, 3, 4, 5, 6, 7, 8, 'q', 'w', 'e', 'r', 't')
>>> print(b*2)
('q', 'w', 'e', 'r', 't', 'q', 'w', 'e', 'r', 't')
10. 세트(집합)
세트는 중복이 안되고, 순서가 없다.
변수명 = { 1, 2, 3, 4, 5}
or
set([1, 2, 3, 4, 5])
위와 같이 세트를 만들 수 있다.
A_group = { '빨강', '노랑', '초록', '파랑' }
B_group = set(['노랑', '보라', '분홍', '주황'])
- 교집합
&
intersection
>>> print(A_group & B_group)
>>> print(A_group.intersection(B_group))
{'노랑'}
- 합집합
|
union
>>> print(A_group | B_group)
>>> print(A_group.union(B_group))
{'주황', '노랑', '분홍', '보라', '초록', '파랑', '빨강'}
- 차집합
-
difference
>>> print(A_group - B_group)
>>> print(A_group.difference(B_group))
{'초록', '파랑', '빨강'}
- 세트 관련함수
- add : 값 추가하기
>>> A_group.add("검정")
>>> print(A_group)
{'파랑', '초록', '빨강', '노랑', '검정'}
- remove : 값 제거하기
>>> A_group.remove("초록")
>>> print(A_group)
{'빨강', '파랑', '검정', '노랑'}