Python 리스트, 튜플, 딕셔너리, 셋
- list = []
- tuple = ()
- dict = {}
- set = set()
Tuple은 리스트와 비슷하지만 값의 수정이 불가능하다는 차이점이 있다.
t1 = ()
t1[0] = 1
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-09a62d860d97> in <module>
1 t1 = ()
----> 2 t1[0] = 1
TypeError: 'tuple' object does not support item assignment
t1 = (1,2,3)
t1[0] # list와 같이 인덱스로 접근 가능하다.
1
#괄호를 생략해도 튜플 사용할 수 있다.
t1 = 1,2,3
type(t1)
tuple
튜플 연산
t2 = (3,4)
t1 + t2
(1, 2, 3, 3, 4)
t2 * 3
(3, 4, 3, 4, 3, 4)
딕셔너리
딕셔너리는 key, value를 한 쌍으로 갖는다.
key를 통해 value를 얻을 수 있다.
dic = {'name':'pey', 'phone':'01012341234', 'birth':'1225'}
dic
{'name': 'pey', 'phone': '01012341234', 'birth': '1225'}
dic['name']
'pey'
dic[0] # 인덱스로는 접근할 수 없음
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-12-ed051a670563> in <module>
----> 1 dic[0] # 인덱스로는 접근할 수 없음
KeyError: 0
dic.keys() # 딕셔너리의 키를 모아서 객체로 반환
dict_keys(['name', 'phone', 'birth'])
dic.values() # 딕셔너리의 밸류를 모아서 객체로 반환
dict_values(['pey', '01012341234', '1225'])
a = {'a': [1,2,3]} # value로 리스트를 넣을 수도 있다.
a['a']
[1, 2, 3]
del a['a'] # key로 접근해서 요소 삭제 가능
a
{}
a = {1.23: '1.23'}
a[1.23] # key로 실수도 사용가능
'1.23'
a = {[1,2,3] : [1,2,3]}
a[[1,2,3]] # key로 리스트는 사용불가
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-32-4fa9150e6945> in <module>
----> 1 a = {[1,2,3] : [1,2,3]}
2 a[[1,2,3]] # key로 리스트는 사용불가
TypeError: unhashable type: 'list'
a = {1 : 'a', 1 : 'b'}
a[1] # 마지막 값으로 덮어씌워진다.
'b'
a = {'name': 'pey', 'phone':'01012341234', 'birth':'1225'}
a
{'name': 'pey', 'phone': '01012341234', 'birth': '1225'}
lista = list(a.keys()) # key를 모은 객체를 list로 변환
lista[0]
'name'
a.items() # key, value 쌍 얻기
dict_items([('name', 'pey'), ('phone', '01012341234'), ('birth', '1225')])
a.clear() # 딕셔너리 비우기
a
{}
a = {'name': 'pey', 'phone':'01012341234', 'birth':'1225'}
a.get('name') # a['name']과 같지만 없는 key를 사용하면 반환하는 것이 다르다.
'pey'
a.get('age') # None 리턴
a['age'] # error 발생
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-48-263173bfb7d5> in <module>
----> 1 a['age'] # error 발생
KeyError: 'age'
Set
집합의 특징
- 중복을 허용하지 않는다.
- 순서가 없다.
s = set('hello')
s
{'e', 'h', 'l', 'o'}
s[0] # 순서가 없기 때문에 인덱스로 접근이 불가능함
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-52-5a22868400f3> in <module>
----> 1 s[0] # 순서가 없기 때문에 인덱스로 접근이 불가능함
TypeError: 'set' object is not subscriptable
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
# 교집합
print(s1&s2)
print(s1.intersection(s2))
# 합집합
print(s1|s2)
print(s1.union(s2))
# 차집합
print(s1-s2)
print(s1.difference(s2))
{4, 5, 6}
{4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3}
{1, 2, 3}
s1 = set([1,2,3])
s1.add(4) # 4 추가
s1
{1, 2, 3, 4}
s1.update([3,4,5]) # 여러개 추가
s1
{1, 2, 3, 4, 5}
#add로는 여러개 값을 넣을 수 없다.
s1.add([3,4,5,6])
s1.add(3,4,5,6)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-63-cc24378f46de> in <module>
1 #add로는 여러개 값을 넣을 수 없다.
----> 2 s1.add([3,4,5,6])
3 s1.add(3,4,5,6)
TypeError: unhashable type: 'list'
s1.remove(2) # 2 제거
s1
{1, 3, 4, 5}
참고 도서 : Do It! 점프 투 파이썬
'Programming > Python' 카테고리의 다른 글
Python 조건문, 반복문 (0) | 2019.12.26 |
---|---|
Python 변수, 객체, 복사 (0) | 2019.12.25 |
Python 리스트 관련 함수 (0) | 2019.12.25 |
Python 리스트 생성, 인덱싱, 슬라이싱, 수정, 삭제 (0) | 2019.12.25 |
Python 문자열 관련 함수 (0) | 2019.12.25 |