[python] range, xrange 함수 사용법

2017. 2. 22. 14:56·python

파이썬에서 숫자로 일정구간을 반복하기 위해서, 

range()와 xrange() 함수를 제공한다. 


동작에는 차이가 없지만, 세부적으로 range()는 리스트 객체를 반환하고, 

xrange()는 xrange 객체를 반환한다. 


range()는 리스트 객체를 생성하여 반환하기 때문에 숫자가 커질수록 메모리 사용량이 많다.

xrange()가 반환하는 xrange 타입은 제네레이터이다. 따라서 필요할 때 숫자를 생성하기 때문에 메모리 사용량은 일정하다. 


* 모바일 환경이나 메모리가 제한적인 상황에서는 xrange()를 사용하고, 

  만약 배열을 여러번 순환해야 한다면 range()를 사용하는 것이 더 좋을 것이다. 


사용방법은 다음과 같다. 


#!/bin/python

# -*- coding:utf-8 -*-


def range_sample():

    

    # 1 ~ 10 까지 반복 

    for num in range(1, 10):

        print num, ' ',

    

    print 

    

    # 0 ~ 10 까지 반복    

    for num in range(10):

        print num, ' ',

    

    print 

    

    # 1 ~ 10 까지 음수 반복 

    for num in range(1, 10, 2):

        print num, ' ',

    

    print 

        

    # 10 ~ 1 까지 반복 

    for num in range(10, 0, -1):

        print num, ' ',

        

        


def xrange_sample():

    

    # 1 ~ 10 까지 반복 

    for num in xrange(1, 10):

        print num, ' ',

    

    print 

    

    # 0 ~ 10 까지 반복    

    for num in xrange(10):

        print num, ' ',

    

def compare_type():

    print type(range(10))

    print type(xrange(10))

    

if __name__ == "__main__":

    print '-'*10, 'range_sample', '-'*10

    range_sample()

    

    print '\n', '-'*10, 'xrange_sample', '-'*10

    xrange_sample()

    

    print '\n', '-'*10, 'compare_type', '-'*10

    compare_type()



https://docs.python.org/2/library/functions.html#range

http://pythoncentral.io/how-to-use-pythons-xrange-and-range/



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

'python' 카테고리의 다른 글

[python] GIL(Global Interpreter Lock)  (0) 2017.11.21
[python] 문자열을 효율적으로 concat 하는 방법  (0) 2017.02.22
[python][error] 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UX 오류 수정  (0) 2017.01.23
[python][error] PermissionError: [Errno 13] Permission denied: ...  (1) 2017.01.23
[python] yield 커맨드(iterable, generator)  (0) 2016.12.16
'python' 카테고리의 다른 글
  • [python] GIL(Global Interpreter Lock)
  • [python] 문자열을 효율적으로 concat 하는 방법
  • [python][error] 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UX 오류 수정
  • [python][error] PermissionError: [Errno 13] Permission denied: ...
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

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

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    Python
    Linux
    오류
    HIVE
    bash
    하이브
    nodejs
    mysql
    emr
    파이썬
    build
    알고리즘
    Hadoop
    k8s
    S3
    oozie
    yarn
    airflow
    AWS
    java
    ubuntu
    정올
    SPARK
    HDFS
    error
    hbase
    Tez
    백준
    하둡
    다이나믹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[python] range, xrange 함수 사용법
상단으로

티스토리툴바