python中xrange和range的区别用法 python中xrange和range的区别

Python\u4e2drange\u548cxrange\u7684\u533a\u522b

range \u51fd\u6570\u8bf4\u660e\uff1arange([start,] stop[, step])\uff0c\u6839\u636estart\u4e0estop\u6307\u5b9a\u7684\u8303\u56f4\u4ee5\u53castep\u8bbe\u5b9a\u7684\u6b65\u957f\uff0c\u751f\u6210\u4e00\u4e2a\u5e8f\u5217\u3002
xrange \u51fd\u6570\u8bf4\u660e\uff1a\u7528\u6cd5\u4e0erange\u5b8c\u5168\u76f8\u540c\uff0c\u6240\u4e0d\u540c\u7684\u662f\u751f\u6210\u7684\u4e0d\u662f\u4e00\u4e2a\u6570\u7ec4\uff0c\u800c\u662f\u4e00\u4e2a\u751f\u6210\u5668\u3002
\u8981\u751f\u6210\u5f88\u5927\u7684\u6570\u5b57\u5e8f\u5217\u7684\u65f6\u5019\uff0c\u7528xrange\u4f1a\u6bd4range\u6027\u80fd\u4f18\u5f88\u591a\uff0c\u56e0\u4e3a\u4e0d\u9700\u8981\u4e00\u4e0a\u6765\u5c31\u5f00\u8f9f\u4e00\u5757\u5f88\u5927\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u8fd9\u4e24\u4e2a\u57fa\u672c\u4e0a\u90fd\u662f\u5728\u5faa\u73af\u7684\u65f6\u5019\u7528

range()\u76f4\u63a5\u521d\u59cb\u5316\u4e00\u4e2alist\uff0c\u5c31\u662f\u5c06List\u4e2d\u7684\u6240\u6709\u5143\u7d20\u653e\u5728\u5185\u5b58\u4e2d\uff0c\u4f7f\u7528\u65f6\u76f4\u63a5\u53d6\uff1b
xrange()\u662f\u4e00\u4e2a\u751f\u6210\u5668\uff0c\u4f7f\u7528\u4e00\u4e2a\u518d\u751f\u6210\u4e00\u4e2a\uff1b
\u5728\u5faa\u73af\u6b21\u6570\u6bd4\u8f83\u5c0f\u65f6\uff0c\u4f53\u73b0\u4e0d\u51fa\u5dee\u522b\uff0c\u4f46\u662f\u5faa\u73af\u6b21\u6570\u5927\u7684\u65f6\u5019\uff0cxrange()\u6027\u80fd\u4f1a\u597d\u4e9b\u3002

在python中

range 
函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表。 

例子:


xrange 
函数说明:xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。 

例子:


但是要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用。

再循环中尽量使用 xrange 这样性能可以得到提高,除非要返回一个列表

由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。

xrange 和 range 这两个基本上都是在循环的时候用。

这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:

输出结果:

而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

输出结果:

总结:

所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。



range

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

xrange

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


由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。

xrange 和 range 这两个基本上都是在循环的时候用。


这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象

a = range(0,100)    
print type(a)    
print a

输出结果:

<type 'list'>    
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,93, 94, 95, 96, 97, 98, 99]

而xrange则不会直接生成一个list,而是每次调用返回其中的一个值

a = xrange(0,100)    
print type(a)    
print a    
print a[0], a[1]

输出结果:

<type 'xrange'>    
xrange(100)    
0 1


1. python3没有xrange,如果python2迁移到3、或者要同时在2/3跑程序,就要注意。 2. xrange不支持切片,这个用起来可能不是很爽。 个人觉得,如果数据量不大,还是用range,如果数据大并且是版本2才考虑用xrange。

  • python涓range,xrange,arange鍒板簳鏄暐鍖哄埆
    绛旓細銆愭敞锛歳ange()涓殑姝ラ暱涓嶈兘涓哄皬鏁帮紝浣嗘槸np.arange()涓殑姝ラ暱鍙互涓哄皬鏁般3銆xrange()涔熸槸鐢ㄤ綔寰幆锛屽彧鏄痻rang(0,10)涓嶈繑鍥瀕ist锛岃繑鍥瀤range瀵硅薄銆傛瘡娆¤皟鐢ㄨ繑鍥炲叾涓殑涓涓笺傝繑鍥炲緢澶х殑鏁扮殑鏃跺欐垨鑰呴绻佺殑闇瑕乥reak鏃跺欙紝xrange鎬ц兘鏇村ソ銆傘愭敞鎰忥細python3.x涓妸xrange()鍙栨秷浜嗐
  • python涓range,xrange,arange鍒板簳鏄暐鍖哄埆
    绛旓細range()鍦╬ython 3.* 鍜宲ython 2.*涓笉涓鏍枫傚浠婄殑璇濓紝3.*鎴愪负涓绘祦锛屾墍浠ュ氨鐢3.*鏉ヨ浜嗭細鐢熸垚涓涓猺ange(n)瀵硅薄銆傚鏋滃埄鐢╢or寰幆锛屽彲浠ュ緱鍒癧0,...,n-1]xrange()鍙瓨鍦ㄤ簬2.*涓紝鍏跺姛鑳藉拰range() 3.* 涓鏍枫傝繖閲岃繕鏄彁涓涓嬪晩锛宺ange(n) 2.* 鏄洿鎺ヨ緭鍑篬0,...,n-1]銆俛range()...
  • Python|range鍑芥暟鐢ㄦ硶瀹屽叏瑙h
    绛旓細浜嬪疄涓婏紝Pyhton 涓轰簡瑙勮寖鎬у氨骞茶繃涓嶅皯杩欑浜嬶紝渚嬪锛Python2 涓湁 range() 鍜 xrange() 涓ょ鏂规硶锛岃 Python3 灏卞共鎺変簡鍏朵腑涓绉嶏紝杩樼敤浜嗏滄潕浠f鍍碘濇硶銆備负浠涔堜笉鏇磋鑼冪偣锛屼护 range() 鐢熸垚鐨勬槸杩唬鍣ㄥ憿锛熷叧浜庤繖涓棶棰橈紝鎴戞病鎵惧埌瀹樻柟瑙i噴锛屼互涓嬬函灞炰釜浜鸿鐐 銆倆ip() 绛夋柟娉曢兘闇瑕佹帴鏀剁‘瀹氱殑鍙凯...
  • python涓range,xrange,arange鍒板簳鏄暐鍖哄埆
    绛旓細range鍦3.x涓〃绀鸿寖鍥达紝range(5)=[0,1,2,3,4]xrange鍦2.x涓娇鐢紝鐜板湪3.x涓凡缁忕Щ闄わ紝琚玶ange鏇夸唬锛屽姛鑳芥槸涓鏍风殑 arange涓嶆槸鍏抽敭瀛椼
  • python涓瓁range鍜宺ange鐨勫尯鍒敤娉
    绛旓細鍦╬ython涓 range 鍑芥暟璇存槑锛歳ange([start,] stop[, step])锛屾牴鎹畇tart涓巗top鎸囧畾鐨勮寖鍥翠互鍙妔tep璁惧畾鐨勬闀匡紝鐢熸垚涓涓垪琛ㄣ備緥瀛愶細xrange 鍑芥暟璇存槑锛歺range 鐢ㄦ硶涓 range 瀹屽叏鐩稿悓锛屾墍涓嶅悓鐨勬槸鐢熸垚鐨勪笉鏄竴涓猯ist瀵硅薄锛岃屾槸涓涓敓鎴愬櫒銆備緥瀛愶細浣嗘槸瑕佺敓鎴愬緢澶х殑鏁板瓧搴忓垪鐨勬椂鍊欙紝鐢▁range浼氭瘮range鎬ц兘浼...
  • python xrange鍦ㄥ摢涓簱閲
    绛旓細1. python3娌℃湁xrange锛屽鏋減ython2杩佺Щ鍒3銆佹垨鑰呰鍚屾椂鍦2/3璺戠▼搴忥紝灏辫娉ㄦ剰銆2. xrange涓嶆敮鎸佸垏鐗囷紝杩欎釜鐢ㄨ捣鏉ュ彲鑳戒笉鏄緢鐖姐備釜浜鸿寰楋紝濡傛灉鏁版嵁閲忎笉澶э紝杩樻槸鐢╮ange锛屽鏋滄暟鎹ぇ骞朵笖鏄増鏈2鎵嶈冭檻鐢▁range銆
  • Python涓鐨勫父鐢ㄥ唴缃嚱鏁版湁鍝簺鍛?
    绛旓細锛1锛塋ambda鍑芥暟 鐢ㄤ簬鍒涘缓鍖垮悕鍑芥暟锛屽嵆娌℃湁鍚嶇О鐨鍑芥暟銆傚畠鍙槸涓涓〃杈惧紡锛屽嚱鏁颁綋姣攄ef绠鍗曞緢澶氥傚綋鎴戜滑闇瑕佸垱寤轰竴涓嚱鏁版潵鎵ц鍗曚釜鎿嶄綔骞朵笖鍙互鍦ㄤ竴琛屼腑缂栧啓鏃讹紝灏卞彲浠ョ敤鍒板尶鍚嶅嚱鏁颁簡銆侺amdba鐨勪富浣撴槸涓涓〃杈惧紡锛岃屼笉鏄竴涓唬鐮佸潡銆備粎浠呰兘鍦╨ambda琛ㄨ揪寮忎腑灏佽鏈夐檺鐨勯昏緫杩涘幓銆傚埄鐢↙amdba鍑芥暟锛屽線寰鍙互灏...
  • Python瀛︿範涔嬫儼鎬ф眰鍊
    绛旓細>>> for i in xrange(999999999999):... print i ...0 1 2 3 4 5 6 7 8 9 10...鍦≒ython3涓range宸茬粡琚敼涓轰簡xrange,鎵浠鍦╬ython3涓彲浠ユ斁蹇冧娇鐢╮ange().鎯版ф眰鍊间笉瑕佹眰浣犱簨鍏堝噯澶囧ソ鏁翠釜杩唬杩囩▼涓墍鏈夌殑鍏冪礌銆傝凯浠e櫒浠呬粎鍦ㄨ凯浠h嚦鏌愪釜鍏冪礌鏃舵墠璁$畻璇ュ厓绱狅紝鑰屽湪杩欎箣鍓嶆垨涔嬪悗锛屽厓绱...
  • python涓瓁range鍜宺ange鐨勫紓鍚 CiNiao's blog
    绛旓細>>> type(xRange)<type 'xrange'> 杩欓噷灏辨槸寰堟槑鏄鐨绫诲瀷涓婄殑涓嶅悓浜嗭紝range鐩存帴鐢熸垚涓涓垪琛紝xrange鐢熸垚鐨勬槸涓涓獂range瀵硅薄 鍙﹀涓涓緢鏄庢樉鐨勫尯鍒湪涓巟range涓嶆敮鎸佸垪琛ㄥ垏鐗 >>> xRange[:1]Traceback (most recent call last):File "<pyshell#39>", line 1, in <module> xRange[:1]TypeError...
  • python涓瓁range鍜宺ange鐨勫紓鍚
    绛旓細xrange 鍜 range 杩欎袱涓熀鏈笂閮芥槸鍦ㄥ惊鐜鐨鏃跺欑敤銆俧or i in range(0, 100):print i for i in xrange(0, 100):print i 杩欎袱涓緭鍑虹殑缁撴灉閮芥槸涓鏍风殑锛屽疄闄呬笂鏈夊緢澶氫笉鍚岋紝range浼氱洿鎺ョ敓鎴愪竴涓猯ist瀵硅薄锛歛 = range(0,100)print type(a)print a print a[0], a[1]杈撳嚭缁撴灉锛<type '...
  • 扩展阅读:python手机版下载官方 ... for i in range 1 5 ... python中for in range ... python网站入口免费 ... javascript免费网站 ... 学python有前途吗 ... 学python后到底能干什么 ... python和c++学哪个好 ... python中range 函数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网