Tuple
a = ( )
a = (1,)
2.1 주의! a = (1) 시, int 로 인식
2.2 주의! self.name = name, <--마지막 ',' 시, Tuple 로 인식
class BasicClass():
def __init__ (self, name):
self.name=name, # <--- name(str) -> 튜플화 되어 저장됨, self.name=(name)
a = () # 튜플 선언
b = (1) # want: 튜플에 원소 하나 -> 하지만 int로 인식됨
print(b)
print(type(b))
=== 출력 ===
1
<class 'int'>
b = (1) 로 하면 int로 인식
튜플에 원소 하나일 때는 b = (1 , ) 식으로 써야 튜플로 인식
자료형 상관 없음
c = (11, 12, 'Alice', 'Base')
튜플 내 튜플 가능
d = (11, 12, ('alice', 'gray'))
print(d[0])
print(d[-1][0])
=== 출력 ===
11
alice
리스트로 변환
a = (1, 2, 3)
b = list(a)
print(b)
=== 출력 ===
[1, 2, 3]
t = ('foo', 'bar', 'baz', 'qux')
print(t)
# 이게 그냥 패킹
# 언패킹
(x1, x2, x3, x4) = t
print(x1, x2, x3, x4) # foo bar baz qux
print(type(x1)) # <class 'str'>
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
a = dict()
a = {} # 이 방법은 비추천 a = { 'val1', 'val2' } 로 하면 set type
# a = { 'key': 'value" }
b = {
'name': 'yang',
'city': 'seoul',
'grade': [4.0, 4.5, 3.2],
'Status': True
}
c = { 0: 'hello', 10: 'world' }
print(c[0]) -> 'hello'
print(c[10]) -> 'world'
N
번의 입력을 예고하고 X Y
형태로 값을 줄때가 있는데dict()
에 X: key
, Y: value
로 넣을 수 있다.readl=sys.stdin.readline
vil=dict( map(int,readl().strip().split() for_ in range(N) )
print(vil)
# ==== 입력 ==== #
3
1 0
2 21
4 0
# ==== 출력 ==== #
{1: 0, 2: 21, 4: 0}
a[key]=value
a={}
1. 야매: a[10]=None # 모르겠으면 None이라도 넣을 것. 아무 것도 넣지않으면 익셉션 발생
d=dict()
d[4]=2
print(d.get(4)) -> 2 출력
a[key].update( 내용 )
list
에서 각 내용이 dict()
인 경우a[1]={2: 4, 3:5}
6 7
1 2 4
1 3 2
2 4 4
2 5 5
3 5 4
4 6 1
5 6 2
maps=[ dict() for _ in range(V+1) ]
for i in range(0,E):
V1, V2, cost=map(int, readl().strip().split())
maps[V1].update({V2:cost})
b = {
'name': 'yang',
'city': 'seoul',
'grade': [4.0, 4.5, 3.2],
'Status': True
}
1. 야매
try:
print(b['name']) # yang
print(b['grade'][0])
except:
print("Key_Error")
2. 정석
print(b.get('name')) # 키가 없으면 None 출력
<dict>.get('key')
<dict>.get('key')
는 Exception Handling!b={
'name':'yang',
'city': 'seoul',
'grade': [4.0,4.5],
'status': True,
'name': 'donghyeon' <- 'name' key 중복
}
print(b.get('name'))
=== 출력 ===
donghyeon <- 'name' key 마지막에 담긴 내용만 나옴
dict_keys(['name', 'city', 'grade', 'status'])
['name', 'city', 'grade', 'status']
a = dict()
for k in a:
print(k)
더 간결하게는 아래와 같이 바로 b.keys()
d=dict()
d[4]=2
for i in d.keys():
print(i, d.get(i))
더 간단하게는
for k in d:
print(k, d[k])
if key not in a:
a[key] = [] # list 부여
a[key] = value # value 부여
<dict>.valuse()
a.values()
로 전체 value들을 조회한다.print( b.values() )
print( b.items() )
b = {
'name': 'yang',
'city': 'seoul',
'grade': [4.0, 4.5, 3.2],
'Status': True
}
print( b.pop('name') ) # Key 'name'의 'value'을 출력
print(b) # 'name' Key와 그 key의 value가 사라짐
b={
'name':'yang',
'city': 'seoul',
'grade': [4.0,4.5],
'status': True,
'name': 'donghyeon'
}
b.clear() clear!!!
print(b) -> 출력: {}
dict
에 없던 'key'
에 'value'
를 넣고 싶다.# 기존
table=dict()
if table.get('new_key') == None: # new_key 라는 키를 가진 item이 있는지 찾아봄
table['get']=0 # None이 나올 경우 '키' 'value' 삽입
setdefault( )
vil=dict( map(int,readl().strip().split()) for _ in range(N) )
vil_copy=vil.copy()
print(id(vil[1]))
print(id(vil_copy[1]))
vil_copy[1]=10
print(id(vil[1]))
print(id(vil_copy[1]))
print(vil[1])
print(vil_copy[1])
# ==== 출력 ==== #
4345719056
4345719056
4345719056
4345719376
0
10
from collections import defaultdict
from collections import defaultdict
d = defaultdict([bool|int|str|...])
from collections import defaultdict
d=defaultdict()
for k,v in d.items():
print(k)
print(v)
a = set()
a = set([1,2,3,4])
a = set([1,2,'pet', 'hat'])
a = {'foo', 'bar', 'baz', 'qux' } # { }에 Key: Value 형태가 아니면 set임
a = set([1,2,3,3,4])
print(a) # { 1, 2, 3, 4}
a.add(5)
print(a) # { 1, 2, 3, 4, 5 }
a = set([1,2,3,3,4])
print(a) # { 1, 2, 3, 4}
a.remove(2)
print(a) # { 1, 3, 4 }
a = set([1,2,3,4,5])
print(2 in a) # True
pop
을 쓰면 set
내 가장 작은 것 부터 pop
된다.
example_set=set()
example_set.pop()
예시:
-----------------------
add: 7
add: 9
add: 7
add: 30
add: 2
add: 7
add: 9
add: 25
------------------------
pop: 2
pop: 7
pop: 9
pop: 25
pop: 30