Python在ACM输入模式下用Map代替For

博客讨论了在处理大量输入数据时,Python中map函数与for循环的性能差异。通过测试,发现在处理一亿个1的数据时,map函数的耗时显著少于for循环,对于大规模输入,使用map更为高效。建议在需要高性能输入处理的场景下优先考虑使用map。
摘要由CSDN通过智能技术生成

之前在ACWing学习的时候发现Python输入模式有两种:

res = list(map(int, input().strip().split()))

res = [int(x) for x in input().strip().split()]

最近楼主在蓝桥杯中使用了for循环输入数据(头铁),比完才发现在比赛的输入模式中,for循环处理输入比map要慢得多,在数据量大的时候很容易超出时间限制

测试,先生成一亿个1:

a = '1 '*100000000

使用map处理成列表:

from time import time
start = time()
test_1 = list(map(int, a.strip().split()))
end = time()
print('map耗时:' + str(end - start)+'秒')

在这里插入图片描述

使用for处理成列表:

start_2 = time()
test_2 = [int(x) for x in a.strip().split()]
end_2 = time()
print('for耗时:' + str(end_2 - start_2)+'秒')

在这里插入图片描述
而生成的数据完全一致:
在这里插入图片描述
以后要是有大规模输入还是老实用map吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锌a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值