1. 단일값을 저장하는 데이터

1 ) int( ) : integer

  • 정수형 데이터 타입으로 1,2,3같은 정수를 뜻한다

2 ) float() : Float

  • 실수형 데이터 타입으로 0.1,0.2 와 같은 실수를 뜻한다.
  • 괄호 안의 숫자나 계산식, 숫자로된 문자열을 정수로 변환해준다.

3 ) str() : String

  • 문자형 데이터 타입을 나타내며 따옴표 (' ') 나 큰따옴표 (" ")를 사용한다
  • 여러줄로된 문자열의 경우 따옴표 3개 (''' String '''')나 큰따옴표 3개("""String"""")를 사용한다.
ex) 

multi_line_string = """this is line number 1
this is line number 2
this is line number 3
this is line number 4"""

출력:

his is line number 1
this is line number 2
this is line number 3
this is line number 4

4 )bool 타입 : Boolean

  • 비교연산자와 두값의 논리 값을 판단하고 True or False로 나타낸다.
    • 논리연산자
      • And: 하나라도 거짓이 존재하면 False가 출력되고, 모두 참이야만 True가 출력된다.
        True and False -> False
      • Or: 하나라도 참이 존재하면 True가 출력되고, 모두 거짓일 때만 False가 출력된다.
        True or False -> True
      • not: True는 False로, False는 True로 출력합니다.
        not True -> False
    • 비교연산자
      • ==: a==b 형태로 작성하며, a와 b가 같으면 True, 다르면 False가 출력된다.
        3==2 -> False
      • !=: a!=b 형태로 작성하며, a와 b가 같으면 False, 다르면 True가 출력된다.
        3!=2 -> True
      • / >=

        • a > b : a가 b보다 크면(초과) True, 그렇지 않으면 False를 출력함.
        • a >= b : a가 b보다 크거나 같으면(이상) True, 그렇지 않으면 False를 출력함.
          ```
          1 > 1 -> False
          ```
          
          ```
          1 >= 1 -> True
          ```
          
      • &
        논리 연산자 'And'와 비슷하게 작동된다. 숫자 값을 이진수로 변환하여 동일한 위치의 값이 같으면 1로 다르면 0으로 하여 계산한다.
        ```
        8 & 10 -> 8
        ```
        
        8이 출력되는 이유. 8과 10을 이진수로 바꾸면 알 수 있다.
        
        ```
          0000 1000(8)
        & 0000 1010(10)
        -----------
          0000 1000
        ```
        
        따라서, 최종적으로 1000이 출력되며, 이를 다시 10진수로 바꾼 8이 출력된다.
      • |
        논리 연산자 'Or'와 비슷하게 작동된다. 숫자 값를 이진수로 변환하여, 동일한 위치의 값이 하나라도 1이라면 1로, 둘 다 9이면 0을 출력한다.
        ```
        8 | 10 -> 10
        ```
        
        ```
          0000 1000(8)
        | 0000 1010(10)
        -----------
          0000 1010
        ```
        
        따라서, 1010을 출력이 되며, 이를 다시 10진수로 바꾸면 10이 되므로 최종적으로 10을 한다.

2.여러개의 값을 저장하는 데이터 타입

1 )List

파이썬에서 리스트(list)란 원소들이 연속적으로 저장되는 형태의 자료형

  • 서로다른 데이터 타입을 가질수있다
```
a = ['apple', 1, 23.2, True]
```
  • 리스트 간의 중첩이 가능하다
    b = [[1,2,3],['apple','banana']]
  • 내부의 데이터를 변경하거나 추가, 삭제가 가능하다.
    • 리스트 추가
      - append: 리스트의 끝에 데이터를 추가한다
      - insert(i, x): i(index) 위치에 데이터를 추가한다
      - extend: 리스트의 끝에 배열을 추가한다

      list = ['apple', 'melon', 'kiwi']
      list.append('grape')
      print(list)
      # print: ['apple', 'melon', 'kiwi', 'grape']
      
      list = ['apple', 'melon', 'kiwi']
      list.insert(0, 'grape')
      print(list)
      # print: ['grape', 'apple', 'melon', 'kiwi']
      
      list = ['apple', 'melon']
      list2 = ['grape', 'kiwi']
      list.extend(list2)
      print(list)
      # print: ['apple', 'melon', 'grape', 'kiwi']
  • 리스트 삭제
    • remove(x): 리스트에서 값이 x와 같은 첫 번째 항목을 삭제한다.

    • pop([i]): i(index)를 지정하면 index 위치에 있는 데이터를 삭제한다.

      > index를 지정하지 않으면 리스트의 맨 마지막 데이터를 삭제한다.
      > 
      list = ['apple', 'apple', 'grape', 'kiwi']
      list.remove('apple')
      print(list)
      # print: ['apple', 'grape', 'kiwi']
      
      list = ['apple', 'melon', 'grape', 'kiwi']
      list.pop()
      print(list)
      # print: ['apple', 'melon', 'grape']
      list.pop(0)
      print(list)
      # print: ['melon', 'grape']
  • 리스트 전체 삭제
    • clear: 리스트의 모든 항목을 삭제한다.
      list = ['apple', 'melon', 'grape', 'kiwi']
      list.clear()
      print(list)
      # print: []

2 )Tuple

  • 소괄호( )나 tuple() 함수를 통해 표현
  • 리스트와 유사하지만 차이점을 갖고 있다.
    • 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
    • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
  • 요소가 절대 변경되지않고 유지 되어야 할때 사용 가능 하다.
    튜플 선언
    
    t1 = ()
    t2 = (1,)
    t3 = (1, 2, 3)
    t5 = ('a', 'b', ('ab', 'cd'))
  • 튜플에서의 인덱싱, 슬라이싱, 더하기는 리스트에서 하는 것과 결과가 동일하게 나타난다.

3 )Dictionary

대부분의 언어에서 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열(Associative array) 또는 해시(Hash)라고 한다. 파이썬에서는 이러한 자료형을 Dictionary라고 한다. Dictionary는 Key와 Value를 한 쌍으로 갖는 자료형이다.

Dictionary는 List나 Tuple처럼 순차적으로(sequential) 해당 요솟값을 구하지 않는다. Key를 통해 Value를 얻는다. 이것이 바로 딕셔너리의 가장 큰 특징이다. baseball이라는 단어의 뜻을 찾기 위해 사전의 내용을 순차적으로 모두 검색하는 것이 아니라 baseball이라는 단어가 있는 곳만 펼쳐 보는 것이다.

  • 중괄호 { }나 dict( )함수를 통해 표현
  • Key : value 형식으로 저장하며 각 Key값은 콤마 (,)를 통해서 구분한다.
  • Key가 중복 된다면 가장 뒤의 값만 사용된다.
```
dic = {'a':12,'b':13,'a':15}
dic['a'] = 15 

a = { 'a': [1,2,3] } -> Value에 리스트도 넣을 수 있다.
```
  • Dictionary 쌍 추가, 삭제하기
    • 추가
      a = {1: 'a'}
      a[2] = 'b'
      print(a)
      #print: {1: 'a', 2: 'b'}
      
      a[3] = [1,2,3]
      print(a)
      #print: {1: 'a', 2: 'b', 3: [1, 2, 3]}
  • 삭제 del 함수를 사용해서 del a[key]처럼 입력하면 지정한 Key에 해당하는 {key : value} 쌍이 삭제된다.
    del a[1]
    print(a)
    #print: {2: 'b', 3: [1, 2, 3]}
  • Dictionary 관련 함수
    • keys(): keys()는 딕셔너리 Key만을 모아서 객체로 돌려준다(list 아님)
      a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
      a.keys()
      dict_keys(['name', 'phone', 'birth'])
      >>> for k in a.keys():
      ...    print(k)
      ...
      name
      phone
      birth
      keys list 값으로 변환
      
      list(a.keys())
      ['name', 'phone', 'birth']
  • values(): values는 value만을 모아서 객체로 돌려준다.
    >>> a.values()
    dict_values(['pey', '0119993323', '1118'])
  • items(): items()는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.
    >>> a.items()
    dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

4 )set

집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.

  • 집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
  • 위와 같이 set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
s1 = set([1,2,3])
print(s1)
{1, 2, 3}

s2 = set("Hello")
print(s2)
{'e', 'H', 'l', 'o'}

특징

위 예제를 보면 알 수 있다시피 print 할 때 문자열이 뒤죽박죽이고 ‘l’이 하나만 print 되어 있다. 이는 set의 아래와 같은 특징 때문이다.

  • 중복을 허용하지 않는다.
  • 순서가 없다.

리스트나 튜플은 순서가 있기 때문에 인덱싱이 가능하지만 set은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다. 참고로 딕셔너리도 순서가 없기 때문에 인덱싱을 지원하지 않는다.

만약 인덱싱을 하고 싶다면 set을 리스트나 튜플로 변환해야 한다.

# 1. list 변환
s1 = set([1,2,3])
l1 = list(s1)
print(l1)
print: [1, 2, 3]

l1[0]
1

# 2. tuple 변환
t1 = tuple(s1)
t1
print: (1, 2, 3)

t1[0]
1

교집합, 합집합, 차집합

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
  • 교집합
    • "&" 기호를 이용하면 교집합을 간단히 구할 수 있다.
    • 또는 intersection 함수를 사용해도 동일한 결과를 돌려준다.
s1 & s2
{4,5,6}

s1.intersection(s2)
{4,5,6}
  • 합집합
    • "|" 기호를 사용한다.
    • 또는 union 함수를 사용하면 된다.
s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}

s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
  • 차집합
    • 빼기(-) 기호를 사용한 방법이다.
    • difference 함수를 사용해도 차집합을 구할 수 있다.
s1 - s2
{1,2,3}

s1.difference(s2)
{1,2,3}

집합 자료형 관련 함수들

  • 값 1개 추가하기(add)

이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가할 경우 아래와 같이 한다.

s1 = set([1,2,3,])
s1.add(4)
s1
{1,2,3,4}
  • 값 여러 개 추가하기(update)

여러 개의 값을 한꺼번에 추가(update)할 때는 다음과 같이 한다.

s1 = set([1,2,3])
s1.update([4,5,6])
s1
{1,2,3,4,5,6}
  • 특정 값 제거하기(remove)
    • 특정 값을 제거하고 싶을 때는 다음과 같이 한다.
    • 한 번에 하나의 값만 제거 할 수 있다.

[출처: https://wikidocs.net/11]

0개의 댓글

Powered by GraphCDN, the GraphQL CDN