作者sbrhsieh (sbr)
看板Python
标题Re: [问题] List扩编的处理速度...
时间Sat Apr 25 15:30:11 2009
※ 引述《leondemon (狗狗)》之铭言:
: 测试出来的时间会有差异
: 我实际用做1000000次去测试list扩编的速度
: 使用 list.append(i) 约为0.24秒
: 使用 list += [i] 约为0.35秒
: 使用 list = list + [i] 约为49.7秒
: 很明显的list = list + [i]的速度慢很多
: "There should be one-- and preferably only one --obvious way to do it."
: 既然如此 为何Python还要允许存在这种扩编list的方式呢?有其他时机会用上吗?
aList = aList + [i]
并不是一种扩编 list 的语意,而是:
建立一个新的 list 使其内容等同两个 list
合并,
新建立的 list assign 到 name aList(原先 aList 持有的 list object
让他遗失)。
如果你考虑到 anotherList = aList + [i],你就不会执着於为什麽要让人可以这样
写:aList = aList + [i],明明他就比 aList += [i] 慢很多。你把语意局限在一个
小的范围内,然後去质疑之(类似明明就可以 87*100 为什麽要容许 87+87+87...+87
),并不妥当。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.134.233