zoukankan      html  css  js  c++  java
  • range与xrange的区别

    一、Python中range()与xrange()有什么区别

     range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列

    range(6)
    #[0, 1, 2, 3, 4, 5]
    
    range(1,6)
    #[1, 2, 3, 4, 5]
    
    range(1,6,2)
    #[1, 3, 5]
    #也就是说range()返回的是个列表
    

     xrange用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器

    xrange(6)
    #xrange(6)
    list(xrange(6))
    #[0, 1, 2, 3, 4, 5]
    
    xrange(1,6)
    #xrange(1, 6)
    list(xrange(1,6))
    #[1, 2, 3, 4, 5]
    
    xrange(1,6,2)
    #xrange(1, 7, 2)
    list(xrange(1,6,2))
    #[1, 3, 5]
    #xrange()返回的是个生成器
    

     由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,但是后来的Python3版本已经去掉了xrange()函数,而range()函数也返回的是生成器。

  • 相关阅读:
    Linux基础命令---swapon
    Linux基础命令---fsck
    Linux基础命令---e2fsck
    Combination Sum
    Pow(x, n)
    Permutations
    Permutation Sequence
    Rotate List
    Unique Paths II
    Unique Paths
  • 原文地址:https://www.cnblogs.com/always-fight/p/9351025.html
Copyright © 2011-2022 走看看