range()和xrange()都是Python提供的内建函数,他们的作用是在for循环中为迭代器提供一个循环的范围。
例如:
for i in range(len(list))
但是Python中还提供了xrange()内建函数,那么它与range()函数有什么区别呢?
当你有一个很大范围的列表时,使用xrange()函数更为合适,因它不会在内存中创建列表的完整拷贝,并且只能应用在for循环中,在for循环之外就没有意义了;
它的性能远高于range(),因为它不生成整个列表。
在MergeSort函数中我使用了xrange函数,令处理100w个随机数的效率提高了大约5%的性能。