通过
初始化列表列表有什么不同[[0 for i in xrange(n)] for j in xrange(m)]
或
[[0]*n for j in xrange(m)]
从时间性能的角度来看,第一种方式比第二种方式快4倍,我想知道第一种方式是否有任何计算/内存使用或分配缺陷。
答案 0 :(得分:1)
列表推导提供了创建列表的简明方法。共同 应用程序将创建新列表,其中每个元素都是结果 一些操作应用于另一个序列的每个成员或 可迭代的,或创建满足a的元素的子序列 某种条件。
第一种方法比第二种方法慢,因为在每次循环迭代中都会执行 no-op 。
P.S。如果要初始化具有常量值(k)的列表列表,那么理想和最快的方法是使用numpy debounce (func, wait, immediate) {
let timeout
return function () {
const context = this
const args = arguments
const later = function () {
timeout = null
if (!immediate) func.apply(context, args)
}
const callNow = immediate && !timeout
clearTimeout(timeout)
timeout = setTimeout(later, wait)
if (callNow) func.apply(context, args)
}
}
。