相关疑难解决方法(0)

列表推导和功能函数是否比"for loops"更快?

在Python的性能方面,是一个列表理解,还是比for循环更快的map(),filter()和reduce()等函数?从技术上讲,为什么它们"以C速度运行",而"for循环以python虚拟机速度运行"?

假设在我正在开发的游戏中,我需要使用for循环绘制复杂且巨大的地图.这个问题肯定是相关的,因为如果列表理解确实更快,那么为了避免滞后(尽管代码的视觉复杂性),这将是一个更好的选择.

python performance for-loop list-comprehension map-function

130
推荐指数
7
解决办法
7万
查看次数

为什么列表理解比附加到列表要快得多?

我想知道为什么列表理解比附加到列表要快得多.我认为差异只是表达,但事实并非如此.

>>> import timeit 
>>> timeit.timeit(stmt='''\
t = []
for i in range(10000):
    t.append(i)''', number=10000)
9.467898777974142

>>> timeit.timeit(stmt='t= [i for i in range(10000)]', number=10000)
4.1138417314859
Run Code Online (Sandbox Code Playgroud)

列表理解速度提高了50%.为什么?

python list-comprehension list python-2.7 python-3.x

36
推荐指数
3
解决办法
2万
查看次数

列表理解与numpy数组 - 糟糕的做法?

我想知道下面的方法是否会被认为是不好的做法,如果是的话,如果有人可以给出另一种方法的指导.

这是有问题的代码:

a = np.array([[1,2,3],[4,5,6]])
b = np.array([-5,5])
c = np.array([np.multiply(a[x],b[x]) for x in range(2)])
Run Code Online (Sandbox Code Playgroud)

这里的目标是获得一个与'a'形状相同的数组,其中'a'的第一个元素中的值乘以'b'的第一个元素,并且'a'的第二个元素中的值相乘由'b'的第二个元素

上面的代码是有效的,但考虑到列表/数组的混合,我担心这是建议不要 - 但我不清楚更优雅的解决方案.提前谢谢了!

python numpy

6
推荐指数
1
解决办法
1753
查看次数