• Home
  • About
    • Awesome soubii photo

      Awesome soubii

      초보 개발자의 공부정리용 블로그입니다. 잘못 쓰여진게 있다면 친절히 알려주세요 :)

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

[Python3]Tuple, Set, Dicrionary

14 May 2020

Reading time ~2 minutes

컬렉션이란

파이썬은 자료구조를 ‘Collection’이라는 이름으로 제공하는데요, 변수를 하나씩 처리하는 것보다 여러 개의 자료를 한번에 처리하기 위해 사용합니다.
아래 내용은 오늘 포스팅에서 정리할 자료구조들의 특징을 한눈에 요약한 것입니다.

  1. 시퀀스(Sequense): 순서를 가지는 자료구조.
    • 리스트, 튜플, 문자열, range() 객체
    • list는 순서가 있고 요소를 변경할 수 있고 요소를 [ ] 안에 나열한다.
    • Tuple은 순서는 있지만 요소를 변경할 수 없고 요소를 ( ) 안에 나열한다.
  2. 매핑(Mapping): 자료마다 key 값이 부여되는 자료구조.
    • 딕셔너리 - 요소를 { } 안에 나열한다.
    • 자료에 순서가 없고 인덱스 값이 있다.
    • **중복값을 허용한다.**
  3. 집합: 여러 개의 자료들을 나열할 수 있는 순서는 따지지 않는 자료구조.
    • 세트(set) - 요소를 { }안에 나열한다.
    • 자료에 순서가 없고 인덱스 값도 없다.
    • **중복값을 허용하지 않는다.**

파이썬이 제공하는 내장시퀀스의 종류
문자열 str, 리스트 list, 튜플 tuple, 반복문에 사용되는 range, 바이트를 처리하는 자료형인 bytes, bytearray

‘튜플’이란

요소가 변경될 수 없는 리스트이며 ()로 요소들을 나열합니다. 여러 개의 자료형을 섞어서 만드는 것도 가능하지만 요소를 변경하고자 하면 TypeError가 발생하기에 주의해야 합니다.

colors = ("red", "green", "blue")
colors[0] = "pink" #TypeError: 'tuple' object does not support item assignment

리스트와 마찬가지로 len(), +, *, in, not in 연산 사용이 가능하며, 사용할 수 있는 함수로는

  • cmp(tuple1, tuple2) : 두 개의 튜플 비교연산
  • tuple(리스트) : 리스트를 튜플로 변환. 반대로 list(튜플)를 쓰면 튜플을 리스트로 변환하는 것도 가능하다!

‘세트’란

순서 없이 중복값 없이 항목들이 모인 자료구조로 {} 로 나열합니다.
세트 또한 len(), in, not in 등의 연산이 가능하며 서로 다른 자료형들을 하나의 set에 포함시킬 수 있습니다.

그리고 순서가 없기에 인덱스 번호 또한 없다는 것! numbers[0]와 같은 인덱싱 방식의 접근이 불가능하답니다.

사용할 수 있는 함수들

  • .add(요소) : 요소 추가
  • .update(리스트) : 중복된 요소를 제외한 요소들만 추가 된다.
  • .discard(요소) : 해당 요소 삭제, set에 해당 요소가 없으면 넘어감
  • .remove(요소) : 해당 요소 삭제, set에 해당 요소가 없으면 에러 출력
  • .clear() : 모든 요소 삭제
  • .pop() : 임의의 요소 삭제 및 반환. 단, 빈 세트에서 하려고 하면 에러 출력

set의 부분집합연산 및 집합연산

  • == 또는 != : 두 집합이 갖고 있는 원소가 같은지 비교한다.
  • b < a: b가 a의 진부분집합인지 비교, 등호가 있으면 부분집합인지도 함께 비교한다.
  • b.issubset(a): b가 a의 부분집합인가. 이것은 b <= a와도 같은 의미이다.
  • a.issuperset(b) : a가 b의 상위집합이냐, 이것은 a >= b와 같은 의미이다.

  • a b : a와 b의 합집합을 반환. a.union(b)와 같다.
  • a & b : a와 b의 교집합을 반환. a.intersection(b)와 같다.
  • a - b : a와 b의 차집합을 반환. a.difference(b)와 같다.

‘딕셔너리’란

키(key)와 값(value)을 쌍으로 저장할 수 있는 자료구조로 {}로 나열합니다.
하나의 키는 하나의 값만 나타내야 하고 키값은 인덱스로 사용될 수 있습니다. 키 값은 변하지 않는 값이어야 합니다. 따라서 list는 키가 될 수 없지만, 튜플은 키가 될 수 있습니다.
value값에는 list, tuple을 비롯한 다양한 자료형들이 들어갈 수 있습니다.

딕셔너리에서 각 항목에 접근할 때는 키값, 또는 get()을 사용합니다. 해당 키값과 연결된 value를 찾아줍니다.

contacts = {'Kim':'01012345678', 'Park':'01012345679', 'Lee':'01012345680'}
contacts['Kim'] #'01012345678'
contacts.get('Kim') #'01012345678'


sample postreadabilitypythonstudy Share Tweet +1