[빅데이터 스터디 1주차] 3. Python 002 (리스트, 튜플, 셋, 딕셔너리)

이도연·2021년 9월 5일
0

1. 리스트

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]

2. 튜플

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)

3. 셋

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}

4. 딕셔너리

# 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}

0개의 댓글