l = [100, 200, 300, 400] print(l) print(type(l)) # print(dir(l)) print(l[1]) #l의 첫번째 l[1] = 1000 #l의 첫번째 자리에 1000 대입이 가능하다. 왜냐하면 리스트는 변경이 가능한 자료형이기 때문이다. print(l)
리스트는 변경이 가능하고 순서가 있는 자료형이다.
👉 결과
[100, 200, 300, 400]
<class 'list'>
200
[100, 1000, 300, 400]
l = [100, 200, 300, 400] print(l[::-1]) # 역순이 된다. # l[start:stop:step] print(dir(l)) l.append(300) # append() 는 맨 뒤에 값을 넣는 것이다. print(l) # l.clear() -> # 그냥 비우는 애 # l.copy() print(l.count(300)) # 300의 개수를 센다. print(l) l.extend([100, 200, 300]) # 값을 확장시켜준다. print(l) print(l.index(100)) # index() 는 배열에서 원하는 값의 위치를 찾아준다. l.insert(3, 1000) # 3번째 자리에 1000을 넣겠다. print(l) l.pop() print(l) l.remove(100) # 처음나오는 100만 삭제시켜준다. print(1) l.reverse() # reverse() 는 거울대칭으로 위치를 변경시켜준다. print(l) l.sort() # sort() 는 순서대로 정렬시켜준다. print(l) #sorted() #reversed()
👉 결과
[400, 300, 200, 100]['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
[100, 200, 300, 400, 300]
2
[100, 200, 300, 400, 300][100, 200, 300, 400, 300, 100, 200, 300]
0
[100, 200, 300, 1000, 400, 300, 100, 200, 300][100, 200, 300, 1000, 400, 300, 100, 200]
1
[200, 100, 300, 400, 1000, 300, 200][100, 200, 200, 300, 300, 400, 1000]
l = [10, 20] t = (l, 200, 300) print(t) print(type(t)) print(dir(t)) # t[0] = 1000 error -> t의 0번째 자리에 1000 대입이 불가능하다. 왜냐하면 튜플은 변경이 가능한 자료형이기 때문이다. l[0] = 10000 print(t)
튜플은 변경이 불가능하고 순서가 있는 자료형이다.
👉 결과
([10, 20], 200, 300)
<class 'tuple'>
['add', 'class', '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']
([10000, 20], 200, 300)
s = {100, 200, 300, 300, 300} ss = {1, 2, 3} print(s) print(type(s)) print(dir(s)) s.add(500) print(s) print(set('aabbcccdddefggg')) print(s.union(ss)) #합집합
셋은 값의 중복을 허락하지 않고 순서가 없는 자료형이다.
셋은 알고리즘 문제에서 굉장이 많이 사용한다.
👉 결과
{200, 100, 300}
<class 'set'>
['and', 'class', 'contains', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'init_subclass', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
{200, 100, 500, 300} #순서가 없기 때문에 뒤섞여 있다.
{'f', 'b', 'e', 'a', 'c', 'd', 'g'} #셋은 중복을 허락하지 않기 때문이다.
{1, 2, 3, 100, 500, 200, 300}
# d = {key:value} -> 딕셔너리는 key와 value로 나누어져있다. d = {'one':10, 'two':20} print(d['one']) print(type(d)) print(dir(d)) print(d.values()) print(d.keys()) print(d.items()) l = list(d.items()) print(l[0][1]) #0번째의 1번째 값 #다중리스트
딕셔너리는 키의 중복을 허락하지 않고 순서가 없는 자료형이다.
👉 결과
10
<class 'dict'>
['class', 'contains', 'delattr', 'delitem', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'gt', 'hash', 'init', 'init_subclass', 'iter', 'le', 'len', 'lt', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'setitem', 'sizeof', 'str', 'subclasshook', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
dict_values([10, 20])
dict_keys(['one', 'two'])
dict_items([('one', 10), ('two', 20)]) #key와 Value를 리스트안의 튜플로 주고있다.
10
jeju = {'banana':5000, 'orange':2000} seoul = jeju.copy() #copy()가 어떻게 쓰이는지 집중적으로 보기 jeju['orange'] = 100000 print(seoul) print(jeju)
👉 결과
{'banana': 5000, 'orange': 2000}
{'banana': 5000, 'orange': 100000}