본문 바로가기
Tech/etc

[Python] 주식 자동매매 봇 만들기 tuple, list, dictionary, set

by 패드로 2020. 8. 20.

Tuple

tuple = (a,b,c, ...)

처리속도 빠르지만 수정/삭제가 절대 불가능

type(tuple) 를 통해 class 'tuple'임을 확인 가능

 

for i, value in enumerate(tuple):

    print(value)

    print(i)

>>> 이런 식으로 동일하게 자릿수와 값을 사용 가능하고 tuple[0], tuple[1]과 같이 접근도 가능

*enumerate 쓰면 속도가 느려지므로 필요한 상황이 아니면 굳이 쓸 필요 없음

 

List

list = ["a", "b", "c" ... ]

추가, 수정, 삭제 모두 가능

type(list) 를 통해 class 'list'임을 확인 가능

 

추가

list.append("g")

append를 통해 item 추가 가능(맨뒤에 추가)

 

삭제

del list[0]

list의 0번째 아이템 삭제

 

수정

list[0] = "c"

 

두개 이상의 list를 합치는것도 가능

list_sum = list_a + list_b

 

Dictionary

key와 value를 가진 값

a  = {'id' : 'a1234', 'name' : 'jaesung'} 

추가, 수정, 삭제 모두 가능

type(a) 를 통해 class 'dict'임을 확인 가능

a['id']와 같은 식으로 해당 key를 가진 value에 접근 가능

a.get('id')로도 접근 가능

print(a.keys()) 를 통해 key값 리스트를 뽑아올 수 있음

 

for key in a.keys():

    print(key)

    print(a[key])

 

for key, value in a.items():

    print(key)

    print(value)

 

이런식으로 사용 가능

 

a.update({'id' : 'a1235', ... })

a['id'] = 'a1235'

이런식으로 업데이트 가능

 

a.update({'auth':'admin'})

a['auth'] = 'admin'

이런식으로 없는 key를 추가하는 것도 가능

 

b = {"023943" : {'id':"23456"}}

이런식으로 2중, 3중으로도 가능

b["023943"]["23456"] 으로 접근 or b.get("023943").get("23456")

 

 

결론 : tuple은 변화가 어렵기때문에 바뀌지 않을 데이터(종목 데이터) 등을 불러와서 읽을때만 쓰면 될 것 같고, 변화가 잦은 내 포트폴리오나 관심종목 등은 list나 dictionary로 관리하되 해당 종목의 세부정보는 dictionary로 관리하면 될듯. list에서 되는건 다 dictionary에서도 될 것 같은데 추가적으로 찾아보니 dictionary에서의 업데이트 등이 속도가 느린 편이라고 한다.

댓글