为什么Python 中的代码速度较慢?(Why is this code slower in Python ?)
为什么Python 中的代码速度较慢?(Why is this code slower in Python ?)
我刚刚编写了这段代码,我想知道为什么它在Python 中表现得更差? 所有平台都一样吗? 这只是运气不好,还是Py通常较慢?
谢谢!
性能:
python 2.6 python .1 pypy 1.5
li
为什么Python 中的代码速度较慢?(Why is this code slower in Python ?)
我刚刚编写了这段代码,我想知道为什么它在Python 中表现得更差? 所有平台都一样吗? 这只是运气不好,还是Py通常较慢?
谢谢!
性能:
python 2.6 python .1 pypy 1.5 linux 2.2s 2.4s 0.8s os x 2.5s .4s 0.7s代码:(对不起,它太仓促和低效!)
import itertools import random def fptp_draw(result): votes = [prefs[0] for prefs in result] counts = [len([v for v in votes if v == c]) for c in [1, 2, ]] s = sorted(counts) #print('fptp', counts) return s[-1] == s[-2] def av_remove(prefs, cand): if prefs[0] != cand: return prefs else: return prefs[1:] def av_draw(result): nv = len(result) cands = [1, 2, ] while True: votes = [prefs[0] for prefs in result] counts = [len([v for v in votes if v == c]) for c in cands] #print('av ', cands, counts) s = sorted(counts) if s[-1]*2 > nv: return False if len(cands) == 2: return True loser = cands[counts.index(s[0])] cands.remove(loser) result = [av_remove(prefs, loser) for prefs in result] return False #orders = list(itertools.permutati([1, 2, ])) orders = [[1, 2, ], [1, , 2], [2, 1, ], [2, , 1], [, 1, 2], [, 2, 1]] #results = list(itertools.product(*itertools.repeat(orders, 6))) #results = random.sample(results, 5) def rand_vote(): return [(orders) for i in range(1000)] n = fptp = av = 0 for j in range(1000): r = rand_vote() #print() #print(r) n += 1 if fptp_draw(r): fptp += 1 if av_draw(r): av += 1 print(fptp*100.0/n, av*100.0/n) print(n)I just wrote this code, and I was wondering why it performs significantly worse in Python ? Is it the same across all platforms? Is this just bad luck, or is Py generally slower?
Thanks!
Performance:
python 2.6 python .1 pypy 1.5 linux 2.2s 2.4s 0.8s os x 2.5s .4s 0.7sCode: (sorry it's so hasty and inefficient!)
import itertools import random def fptp_draw(result): votes = [prefs[0] for prefs in result] counts = [len([v for v in votes if v == c]) for c in [1, 2, ]] s = sorted(counts) #print('fptp', counts) return s[-1] == s[-2] def av_remove(prefs, cand): if prefs[0] != cand: return prefs else: return prefs[1:] def av_draw(result): nv = len(result) cands = [1, 2, ] while True: votes = [prefs[0] for prefs in result] counts = [len([v for v in votes if v == c]) for c in cands] #print('av ', cands, counts) s = sorted(counts) if s[-1]*2 > nv: return False if len(cands) == 2: return True loser = cands[counts.index(s[0])] cands.remove(loser) result = [av_remove(prefs, loser) for prefs in result] return False #orders = list(itertools.permutati([1, 2, ])) orders = [[1, 2, ], [1, , 2], [2, 1, ], [2, , 1], [, 1, 2], [, 2, 1]] #results = list(itertools.product(*itertools.repeat(orders, 6))) #results = random.sample(results, 5) def rand_vote(): return [(orders) for i in range(1000)] n = fptp = av = 0 for j in range(1000): r = rand_vote() #print() #print(r) n += 1 if fptp_draw(r): fptp += 1 if av_draw(r): av += 1 print(fptp*100.0/n, av*100.0/n) print(n)最满意答案
Pyk通常比python 2.x 慢 。 这将随着时间的推移而改变,但pyk的重点是功能完整性和稳定性,而不是速度。
Pyk is generally slower than python 2.x. That will change as time passes, but the focus for pyk was feature completeness and stability, not speed.
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2023-04-22 19:30:41
推荐阅读
留言与评论(共有 17 条评论) |
本站网友 河北省霸州市 | 8分钟前 发表 |
2 | |
本站网友 robots协议 | 21分钟前 发表 |
2 | |
本站网友 mp3音乐下载器 | 25分钟前 发表 |
r = rand_vote() #print() #print(r) n += 1 if fptp_draw(r) | |
本站网友 熊猫金银币 | 9分钟前 发表 |
[2 | |
本站网友 山也迢迢水也迢迢 | 4分钟前 发表 |
1]] #results = list(itertools.product(*itertools.repeat(orders | |
本站网友 两会2019 | 4分钟前 发表 |
2 | |
本站网友 太平洋人寿保险 | 28分钟前 发表 |
] def av_draw(result) | |
本站网友 肌肉酸痛 | 5分钟前 发表 |
这将随着时间的推移而改变 | |
本站网友 苏州路劲凤凰城 | 26分钟前 发表 |
2 | |
本站网友 蛔虫图片 | 0秒前 发表 |
return False if len(cands) == 2 | |
本站网友 河北国资委 | 30分钟前 发表 |
python 2.6 python .1 pypy 1.5 linux 2.2s 2.4s 0.8s os x 2.5s .4s 0.7s Code | |
本站网友 北京改装 | 11分钟前 发表 |
还是Py通常较慢? 谢谢! 性能: python 2.6 python .1 pypy 1.5 linux 2.2s 2.4s 0.8s os x 2.5s .4s 0.7s 代码 | |
本站网友 张家口租房网 | 30分钟前 发表 |
6))) #results = random.sample(results | |
本站网友 铜陵美食 | 5分钟前 发表 |
而不是速度 | |
本站网友 南通不孕不育 | 13分钟前 发表 |
Pyk is generally slower than python 2.x. That will change as time passes | |
本站网友 西南药业股吧 | 6分钟前 发表 |
counts) s = sorted(counts) if s[-1]*2 > nv |