赞
踩
在参考别人的关于机器学习《K均值聚类算法》的Python实现的源代码时,当我运行时报了如下错误。
原因是我的python版本为python 3.4,而xrange( )函数时在python 2.x中的一个函数,在Python 3中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange( ),因此,当遇到这种问题时,有两种方法可以解决这个问题。
- 第一种:若你想在python 3中运行程序,将xrange( )函数全部换为range( )即可
- 第二种:将出现此问题的程序放在python 2.x版本的环境中运行即可
下面是对xrange( )进行的一个简单的介绍。
在Python 2.x中,经常会用xrange()创建一个可迭代对象,通常出现在“for循环”或“列表/集合/字典推导式”中。
这种行为与生成器非常相似(如”惰性求值“),但这里的xrange-iterable无尽的,意味着可能在这个xrange上无限迭代。
由于xrange的“惰性求知“特性,如果只需迭代一次(如for循环中),range()通常比xrange()快一些。不过不建议在多次迭代中使用range(),因为range()每次都会在内存中重新生成一个列表。
在Python 3中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在Python 3中使用xrange()会触发NameError)。
关于python2.x中xrange()和range()函数的异同可以看这里
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。