问题:range和xrange函数有什么区别?

解决方案: 在 Python 2x 中,有两个生成数字序列的函数:range() 和 xrange()。这两个函数的作用相似,但在内存使用和行为方面有所不同:

range() 函数:range() 在 Python 2 和 Python 3 中都可用。

range() 返回一个包含指定数字序列的 list。

它会生成整个序列,并以 list 的形式存储在内存中,这对于大范围的数据来说可能会占用大量内存。

range() 函数可用于 for 循环或需要数字列表时。

# Python 2 and Python 3
my_list = range (5) # Creates a list [0, 1, 2, 3, 4]

xrange () 函数:xrange() 是 Python 2.x 特有的,在 Python 3 中不存在。

它返回一个 xrange 对象,该对象是一个迭代器,当您遍历它时,它会即时生成数字。

它比 range() 更节省内存,因为它不会在内存中创建整个序列。相反,它会根据需要生成数值。

xrange() 函数对于不需要存储整个序列的大范围迭代特别有用。

# Python 2 (not available in Python 3)
my_iterator = range (5) # Creates an range object that generates [0, 1, 2, 3, 4]