ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python 기초 #4] 집합(set), 불(bool), 변수(variable)
    Programming 기초/Python 2023. 4. 15. 11:07

    * set(집합) 자료형

    - 요소에 순서가 없다.

    - 중복을 허용하지 않는다.

    - 딕셔너리와 비슷하게 인덱싱으로 접근하려면 리스트나 튜플로 변환해야 한다. list(), tuple()

    s1 = set([1, 2, 3]) # set함수 안에 배열을 넣는다.
    s2 = {5, 2, 1, 2}
    s3 = {'Hello'}  # 이건 'Hello'를 하나의 요소로 인식한다.
    s4 = set("hello")	# hello를 구성하는 문자 하나하나를 요소로 인식한다.
    print(type(s3))
    print(s1)
    print(s2)
    print(s3)
    print(s4)
    ------------------------
    <class 'set'>
    {1, 2, 3}
    {1, 2, 5}
    {'Hello'}
    {'o', 'h', 'l', 'e'}
    • 리스트 내의 중복된 요소를 제거할 때 집합이 자주 쓰인다.
    l = [1, 2, 2, 2, 3, 3]
    newlist = list(set(l))
    print(newlist)
    ------------------------
    [1, 2, 3]
    • 교집합, intersection()
    s1 = set([1, 2, 3, 4, 5, 6, 7])
    s2 = {4, 5, 6, 7, 8, 9}
    print(s1 & s2)
    print(s1.intersection(s2))
    -------------------------------
    {4, 5, 6, 7}
    {4, 5, 6, 7}
    • 합집합, union()
    s1 = set([1, 2, 3, 4, 5, 6, 7])
    s2 = {4, 5, 6, 7, 8, 9}
    print(s1 | s2)
    print(s1.union(s2))
    --------------------------------
    {1, 2, 3, 4, 5, 6, 7, 8, 9}
    {1, 2, 3, 4, 5, 6, 7, 8, 9}
    • 차집합, difference()
    s1 = set([1, 2, 3, 4, 5, 6, 7])
    s2 = {4, 5, 6, 7, 8, 9}
    print(s1 - s2)
    print(s2 - s1)
    
    print(s1.difference(s2))
    print(s2.difference(s1))
    ------------------------------------
    {1, 2, 3}
    {8, 9}
    {1, 2, 3}
    {8, 9}

     

    * 집합 자료형 관련 함수

    • add() : 값 1개 추가하기
    s1 = set([1, 2, 3])
    s1.add(4)
    # s1.add([4,5])  -> 비문.
    print(s1)
    -------------------------
    {1, 2, 3, 4}
    • update() : 값 여러 개 추가하기
    s1 = set([1, 2, 3])
    s1.update([4, 5, 6])
    print(s1)
    ---------------------
    {1, 2, 3, 4, 5, 6}
    • remove() : 특정 값 제거하기
    s1 = set([1, 2, 3, 4, 5])
    s1.remove(4)
    print(s1)

     

    * bool(불) 자료형

    - 참(True)과 거짓(False)을 나타내는 자료형.

    a = True    # 예약어이므로. 꼭 첫 문자를 대문자로 써야한다.
    b = False
    print(type(a))
    print(type(b))
    ----------------------------
    <class 'bool'>
    <class 'bool'>
    >>> 1==1
    True
    >>> 2>1
    True
    >>> 2<1
    False
    • bool() : 참, 거짓을 알려준다.
    >>> bool("python")
    True
    >>> bool("")
    False
    
    >>> bool([1,2,3])
    True
    >>> bool([])
    False
    
    >>> bool((1, 2, 3))
    True
    >>> bool(())
    False
    
    >>> bool({})
    False
    
    >>> bool(1234)
    True
    >>> bool(0)
    False
    
    >>> bool(None)
    False
    >>> bool(1 < 2)
    True
    • 자료형의 참과 거짓
    자료형 참 or 거짓
    문자열 "python"
    " " 거짓
    리스트 [1,2,3]
    [ ] 거짓
    튜플 ( ) 거짓
    딕셔너리 { } 거짓
    숫자형 0이 아닌 숫자
    0 거짓
      None 거짓

     

    * 자료형의 값을 저장하는 공간, 변수

    - 파이썬에서 사용하는 변수는 객체를 가리키는 것

    >>> a = [1,2,3]	# a는 [1, 2, 3] 리스트라는 객체가 저장된 메모리의 주소를 가리키게 된다.
    >>> id(a)	# 객체의 주소 값을 돌려주는 파이썬 내장 함수
    2506042824128	# a의 주소
    
    >>> a = [1,2,3]
    >>> b = a	# b에 a가 가리키는 객체의 주소를 복사시킨다.
    >>> id(a)
    2506043088640
    >>> id(b)
    2506043088640
    
    >>> a is b
    True

     

    • 리스트 복사

    1. [:]

    >>> a = [1,2,3]
    >>> b = a[:]
    >>> a[1] = 4 # a의 1번째 인덱스의 값을  4로 교체
    >>> a
    [1, 4, 3]
    >>> b
    [1, 2, 3]
    
    # 주소 확인
    >>> id(a)
    2506043381760
    >>> id(b)
    2506042824128

    2. copy() - copy 모듈에 내장된 copy 함수. 내용을 복사한다.

    >>> from copy import copy	# copy 모듈 import
    >>> a = [1,2,3]
    >>> b = copy(a)
    >>> b
    [1, 2, 3]
    
    # 두 변수의 주소를 확인
    >>> id(a)
    2506043551040
    >>> id(b) 
    2506043381376
    
    #is 함수로 주소 동일한지 확인
    >>> b is a
    False

     

    * 변수를 만드는 여러 가지 방법

    1. 튜플

    (a, b) = 'python', 'life'   # 튜플은 괄호를 생략해도 된다.
    print(a)
    print(b)
    print(type(a))	# 튜플을 활용하여 만든 변수이지만 자료형은 튜플이 아닌 문자열이다.
    
    # 단일 요소를 갖는 튜플
    c = ('python',)	# 튜플이 단일 요소를 갖을 때 꼭 콤마를 붙여야 한다.
    print(type(c))	
    
    # (주의) 콤마를 빼면, 튜플이 아닌 일반 문자열자료형이 된다.
    c = ('python')
    print(type(c))
    ---------------------------
    python
    life
    <class 'str'>
    <class 'tuple'>
    <class 'str'>

    2. 리스트를 활용해서 변수를 만드는 방법

    [a, b] = ['python', 'life']   # 튜플은 괄호를 생략해도 된다.
    print(a)
    print(b)
    print(type(a))  #리스트를 이용해 만든 변수이지만 자료형은 리스트가 아니다.
    
    c = [1, 2, 3]
    print(type(c))  #리스트로 만든 변수의 자료형은 'list'이다.
    ------------------------------------------------------------------
    python
    life
    <class 'str'>
    <class 'list'>

    3. 여러 개의 변수에 같은 값을 대입할 수 있다.

    a = b = 'python'
    print(a)
    print(b)
    ---------------------
    python
    python

    4. 두 변수의 값을 아주 간단히 바꿀 수 있다.

    a = 3
    b = 5
    
    a, b = b, a
    
    print("a =", a)
    print("b =", b)
    ---------------
    a = 5
    b = 3

     

    댓글

Designed by Tistory.