Python 리스트 외

7. 리스트

리스트란, 순서를 가지는 객체의 집합이다.

리스트를 만들 때에는 대괄호([])로 감싸주고, 요소값은 쉼표(,)로 구분해준다.

리스트 = [ 요소1, 요소2, 요소3]
  1. 리스트의 연산
  • + : 리스트 더하기 (= 리스트 합치기)
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]
  1. 리스트 처리함수
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:"망고"}
  1. 딕셔너리 추가하기
>>> info[4] = "수박"
>>> print(info)
{1: '사과', 2: '포도', 3: '망고', 4: '수박'}
  1. 딕셔너리 삭제하기
>>> del info[2]
>>> print(info)
{1: '사과', 3: '망고', 4: '수박'}
  1. 딕셔너리 사용함수
  • 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)
  1. 인덱싱과 슬라이싱

튜플은 리스트처럼 인덱싱과 슬라이싱이 가능하다.

>>> 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)
  1. 기본연산

튜플은 리스트처럼 +,*가 가능하다.

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(['노랑', '보라', '분홍', '주황'])
  1. 교집합
  • &
  • intersection
>>> print(A_group & B_group)
>>> print(A_group.intersection(B_group))
{'노랑'}
  1. 합집합
  • |
  • union
>>> print(A_group | B_group)
>>> print(A_group.union(B_group))
{'주황', '노랑', '분홍', '보라', '초록', '파랑', '빨강'}
  1. 차집합
  • -
  • difference
>>> print(A_group - B_group)
>>> print(A_group.difference(B_group))
{'초록', '파랑', '빨강'}
  1. 세트 관련함수
  • add : 값 추가하기
>>> A_group.add("검정")
>>> print(A_group)
{'파랑', '초록', '빨강', '노랑', '검정'}
  • remove : 값 제거하기
>>> A_group.remove("초록")
>>> print(A_group)
{'빨강', '파랑', '검정', '노랑'}