Big Ben
Big Ben's Log
Big Ben
전체 방문자
오늘
어제
  • 전체 글 (80)
    • 파이썬 (23)
      • 파이썬 기초 (5)
      • 클래스 (6)
      • 자료구조 (4)
      • Tensorflow (3)
      • PyTorch (2)
      • konlpy (1)
      • anaconda (1)
    • 머신러닝 (3)
      • 선형회귀 (1)
      • Tree 기반 (1)
    • 딥러닝 (6)
      • NLP (2)
      • VISION (2)
      • TABULAR (0)
      • 딥러닝 서버 구축 (2)
    • 그래프 이론 (1)
      • 그래프마이닝 (1)
      • GNN (0)
    • 강화학습 (3)
      • 강화학습 기본 (3)
    • 인공지능 (5)
    • 추천시스템 (2)
      • 추천시스템 기초 (2)
    • Competitions (1)
    • 빅데이터 (8)
      • 하둡 (3)
      • 스파크 (4)
      • 클라우드 (1)
    • SQL (7)
      • MariaDB (2)
    • 논문 리뷰 (2)
    • 대학원 (0)
      • 데이터 사이언스 (0)
      • 경제학 (0)
    • 선형대수학 (7)
      • 선형대수 ICE BREAKING (1)
      • 벡터 (5)
      • 고윳값 (1)
    • 개인프로젝트 (0)
      • 포트폴리오 대시보드 + AI기반 주식 자동매매 (0)
    • 재테크 (1)
    • 자동차 (0)
    • 알고리즘 (11)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 자료구조
  • 인공지능
  • pytorch
  • 객체
  • 코테
  • PYTHON
  • 데이터베이스
  • TensorFlow
  • MariaDB
  • 프로그래밍
  • 코딩테스트
  • mysql
  • 하둡
  • 프로그래머스
  • 백준
  • AI
  • Baekjoon
  • 빅데이터
  • sql
  • 선형대수
  • 객체지향
  • 알고리즘
  • 딥러닝
  • class
  • 파이썬
  • 데이터사이언스
  • 선형대수학
  • 데이터
  • 머신러닝
  • 파이썬기초

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Big Ben

Big Ben's Log

파이썬/파이썬 기초

[python] is 연산자란?

2023. 3. 5. 14:05
반응형

파이썬에서 is 연산자는 두 변수가 같은 객체를 가리키고 있는지 확인할 때 is 구문을 사용한다.

 

그렇다면 is 연산자와 같음을 나타내는 == 연산자의 차이점은 무엇일까?

 

아래 코드를 통해 이해해보자.

 

# 3개의 리스트 생성
list1 = [1, 2, 3] # 리스트 할당
list2 = list1     # 리스트1을 대입 받는 방식으로 리스트2 생성
list3 = list1.copy() # 리스트1의 사본을 리스트3의 값으로 할당


print('list1 과 list2는 같은 객체를 가리키고 있나요? : ', list1 is list2)
print('list1 과 list3은 같은 객체를 가리키고 있나요? : ', list1 is list3)
print('list2 와 list3은 같은 객체를 가리키고 있나요? : ', list2 is list3)
# --- 출력물 ----
# list1 과 list2는 같은 객체를 가리키고 있나요? :  True
# list1 과 list3은 같은 객체를 가리키고 있나요? :  False
# list2 와 list3은 같은 객체를 가리키고 있나요? :  False

세 리스트 모두 동일한 요소인 1, 2, 3을 갖고 있지만, list1과 list2만 같은 객체를 가리키고 있다.

 

왜냐하면 list2는 list1을 단순 대입받았기때문에 같은 객체를 가리키고 있다. 

두 리스트가 가리키는 대상이 같아 is연산자가 True를 리턴했다.

 

반면에 list3은 copy 메서드로 list1의 사본을 뜬 것이어서 메모리가 완전히 분리된 다른 객체이다.

 

하지만 세 리스트 모두 같은 요소를 갖고 있다.

print('list1 과 list2는 같은 값의 요소로 이루어져 있나요?: ', list1 == list2)
print('list1 과 list3는 같은 값의 요소로 이루어져 있나요?: ', list1 == list3)
print('list2 과 list3는 같은 값의 요소로 이루어져 있나요?: ', list2 == list3)

# --- 출력물 ---
# list1 과 list2는 같은 값의 요소로 이루어져 있나요?:  True
# list1 과 list3는 같은 값의 요소로 이루어져 있나요?:  True
# list2 과 list3는 같은 값의 요소로 이루어져 있나요?:  True

 

반응형
저작자표시 (새창열림)

'파이썬 > 파이썬 기초' 카테고리의 다른 글

[python] 반복자(iterator)와 제너레이터(generator)  (0) 2023.04.05
[python] finally 블록 - 파이썬의 자원정리 방법  (0) 2023.03.05
[python] 키워드 가변 인수 (keyword variable arguments)  (0) 2023.03.05
[python] 함수 - 가변 인수  (0) 2023.03.05
    '파이썬/파이썬 기초' 카테고리의 다른 글
    • [python] 반복자(iterator)와 제너레이터(generator)
    • [python] finally 블록 - 파이썬의 자원정리 방법
    • [python] 키워드 가변 인수 (keyword variable arguments)
    • [python] 함수 - 가변 인수
    Big Ben
    Big Ben
    Data Scientist

    티스토리툴바