gpt4 book ai didi

python - 与 Python2 相比,Python3 中的相同代码速度较慢

转载 作者:行者123 更新时间:2023-12-04 21:19:39 24 4
gpt4 key购买 nike

我编码 this problem at CodeChef并将其作为 Python3 解决方案提交:

import sys

n,k = map(int,sys.stdin.readline().split(" "))
nos = map(int,sys.stdin.readlines())
ans = 0
for i in nos:
if i>0 and i%k == 0:
ans += 1
print(ans)

但如果我将代码编写为:
import sys

n,k = map(int,sys.stdin.readline().split(" "))
nos = map(int,sys.stdin.readlines())
ans = 0
for i in nos:
if i>0 and i%k == 0:
ans += 1
print ans

并将其作为 Python2 解决方案提交,然后该解决方案被接受。

我只是不明白这是要去哪里?...

====###更新###====

来自 的解决方案塞巴斯蒂安 适用于 Python3 但相当重要 慢 10 秒 比我的 python2.7 解决方案。我仍然没有得到答案,为什么最新版本的语言与以前的版本相比性能有所下降?...

最佳答案

我可以确认完全相同的解决方案通过了 python 2.7 上的测试,但它在 python 3.1 上超时:

import sys
try:
from future_builtins import map # enable lazy map on Python 2.7
except ImportError:
pass

file = sys.stdin
n, k = map(int, next(file).split())
print(sum(1 for i in map(int, file) if i % k == 0))
file是行上的迭代器。由于 map,代码支持大文件是懒惰的(不会一次消耗整个文件)。

以下代码在 python 3.1 上通过了测试:
import sys
n, k, *numbers = map(int, sys.stdin.buffer.read().split())
print(sum(1 for i in numbers if i % k == 0))

注意:它不支持任意大输入(以及问题中的代码)。

关于python - 与 Python2 相比,Python3 中的相同代码速度较慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14911122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com