Python开数组也太消耗时间了吧?

dp=[[[MAXforiinrange(2)]foriinrange(40000)]foriinrange(210)]这句话,只是开了一个10*7方的数组,赫然发现消耗... dp=[[[MAX for i in range(2)]for i in range(40000)]for i in range(210)]这句话,只是开了一个10*7方的数组,赫然发现消耗了7s中,开个数组都这么伤,python就这么不注意时间效率?本人i7处理器啊。 展开
 我来答
bdwisyou7d
2012-10-23 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1063万
展开全部
(因为上次回复引起提者的反感修改如下)
1.python的确如楼上所说,更适合快速。但是如果一定要有效率也不是没有办法。通常会用C接口。比如象是海量数据处理,我经常用ctypes这个库,节约内存,同时也提高效率
2.python的库有些是C语言写的,也优化过,其实速度并不是想象的那么慢。也就比JAVA慢一点吧。我曾经对比过,同样的计算,优化过的python程序比C语言都要快10倍
3.python语言里整型也是对象。通常不会用它直接做大型数组。

python在科学计算里是很受欢迎的。方便 ,开发速度快,其实效率也还是很快的。曾经用python做过一个海量数据分析的分布式数据分析软件。 感觉还是很好的。 这套系统运行在一组只有2G-4G内存的老的服务器上。那些服务器的计算速度连我的奔腾CPU的笔记本都比不上。不过依然可以处理几千万的用户数据。
mgphuang
2012-10-27 · 超过21用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:55.7万
展开全部
你用这个来干嘛呢?
python的设计哲学是开发效率第一,而不是运行效率第一。
如果需要科学计算,可以使用第三方库比如pynum 。
在工程上,python的效率好像从来没有成为过问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaisa1028
2012-10-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2569万
展开全部
不要用这样的方式建立list。
这种情况最好用:
dp=[[[MAX,MAX]]*40000]*210

这样如果MAX=1的话,在我这里只要0:00:00.006000。我的cpu是2.8GHz的。
追问
你这样建立的python数组是错误的
你把dp[0][1][1]=10000,然后你就会发现数组里面有好多值都是10000,因为你这样建立的话,好多值都是取向一个引用
追答
你说的对,我错了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式