안녕하세요~!
최근에 파이썬 학습의 진도가 드디어 자료구조까지 왔습니다.
자료구조에서 가장 인상깊었던 것은 비슷해보이지만 차이점이 분명히 있는 자료구조의 종류였는데요.
pokemon_list = ['피카츄', '라이츄', '파이리', '꼬부기', '버터플', '야도란']
print(type(pokemon_list))
pokemon_tuple = ('피카츄', '라이츄', '파이리', '꼬부기', '버터플', '야도란')
print(type(pokemon_tuple))
pokemon_dic = {1 : '피카츄', 2 : '라이츄', 3 :'파이리', 4 : '꼬부기', 5 : '버터플', 6 : '야도란'}
pokemon_set = {'피카츄', '라이츄', '파이리', '꼬부기', '버터플', '야도란'}
print(type(pokemon_set))
각 구조는 아래와 같은 특징이 있습니다.
1. list = 가장 변화무쌍함. 삭제, 변경, 참조가 자유로움
2. tuple = list와 비슷하나, 한번 입력된 자료는 변경되지 않음
3. dictionary = 자료의 index와 index값이 한 쌍을 이룸
4. set = 중복된 자료를 포함하지 않음
pokemon_tuple = ('피카츄', '라이츄', '파이리', '꼬부기', '버터플', '야도란')
pokemon_list = list(pokemon_tuple)
print(pokemon_list)
print(type(pokemon_list))
이런 식으로 tuple 자료에 list() 함수로 list로 변경하게 되면,
['피카츄', '라이츄', '파이리', '꼬부기', '버터플', '야도란']
<class 'list'>
이렇게 자료 type이 tuple -> list로 바뀌게 됩니다.
이후 list에서 이용할 수 있는 함수로 편하게 자료를 수정한 후,
다시 list -> tuple로 아래와 같이 casting 하면 됩니다.
다른 구조들은 나름의 사용처가 이해되었습니다. 수정이 자유로운 list는 data의 수정/탈락/추가를 자유롭게 하기 위함이고, tuple은 수정이 되지 않으니 반복문이나 조건문을 사용하면서 자료의 변형을 막기 위해 사용할 수 있을 듯 하고, dictionary는 index가 자료에 포함되어 있으니, 특정 자료를 타겟하기 수월하겠다는 생각이 들었습니다.
python set:
기본적으로 중복된 내용이 들어가지 않는 자료구조이다.
어떠한 자료를 반복문으로 계속 추가하거나 입력하여도, 자체적으로 distict data만
남게 된다.
또한 '집합'의 개념이므로, set끼리 자료를 비교하거나, 교집합 / 합집합 / 공집합
등의 개념을 python에서 이용할 수 있다.
_참조: https://dongdongfather.tistory.com/81_