Python 板


LINE

: 我不知道你 C function 是如何实作出你形容的功能,我想应该只是一个简单的 for : loop 利用 counter 来计数,每个 iteration increment 一个 int 变数 by 1。 : 如果是这样的话,这个比较其实是不太对等。 我应该是这样写的没错(文後有程式码) 我得先说非常抱歉 做了一个不太对等的比较<(_ _)> 我只是用就我所学的方式来写(现在看起来之间写法很有改善的空间 因为要算很久) 我本来不知道以下你说的那些 现在比较了解 也谢谢你的说明 十分清楚:) : 在Python 3.0 以前,range 不是产生 iterator,range(100000000) 这个 : expression 所作的事是配置至少 100000000 个 4 bytes(for 100000000 个 int : object),并且分别填入 0 ~ 100000000-1,并且配置 4 * 100000000bytes(for : list object本身),这跟 C function 做的事差太多了。 : 可否麻烦你试着把 usePython 改成: : def usePython(i): : from time import time : start = time() : for j in xrange(100000000): xrange以前都不知道怎麽用 现在查了资料了解如下: range(100): 产生一个list 再拿list里面的值 适合用在 range(可叠代的变数) xrange(100):一个一个值拿出来  很适合用在叠代1.2.3.4这样 我之前用range来跑 实在差很多... : i += 1 : return time()-start, i : 或: : def usePython(i): : from time import time : start = time() : j = 0 : while j < 100000000: : i += 1 : j += 1 : return time()-start, i : 再比较一下跟 C implementation 的差异约是多少。 我把上面二个分别取为usePython1 跟usePython2 (原来的是usePython 跟useC) 结果如下: >>> from compare_Py_C import * >>> usePython1(20) (14.906000137329102, 100000020) >>> usePython2(20) (26.609000205993652, 100000020) >>> useC(20) (100000020, 0.4849998950958252) <==这是我本来的程式 有输出i值 >>> 至於 原本的usePython 跑太久没出来我就restart了(用家里的p4跑的) 另外我也把extending的C++档重要部份节录下来: static PyObject * useC(PyObject *self, PyObject *args) { int i,j; if (!PyArg_ParseTuple(args, "i", &i)) return NULL; for (j=0;j<100000000;j++){ i=i+1; }; return Py_BuildValue("i", i); } 是用以上的方式写的 应该是如您所说的方式吧 最後 再次谢谢你 让我学到很多 ps.事实上我之前写的程式 有叠代1.2.3.4...的 通通用range() 囧rz... 改成xrange应该会快上很多吧~ 有错或有改进的地方还请务必告诉我 感恩~ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.105.173







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP