gpt4 book ai didi

python - 使用 zip() 函数的 Python 列表理解的复杂度为 O(n)

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:34 27 4
gpt4 key购买 nike

我目前正在使用以下代码学习教程:

# numpy where
A = np.array([1,2,3,4])
B = np.array([100, 200, 300, 400])
condition = np.array([True, True, False, False])

answer = [(A_val if cond else B_val) for A_val, B_val, cond in zip(A, B, condition)]

answer
# Out: [1, 2, 300, 400]

问题:这个 python 这个结构的复杂性是什么,列表理解和 zip() 函数的混合体?

传递给 zip() 的每个变量都像另一个 for 循环一样工作吗?那么列表理解本身呢?

感谢您的帮助!

最佳答案

你在列表A,B,condition上迭代一次,每次添加一个元素到answer采取的步骤,所以复杂度是 O(n) 其中 n 是最短列表的大小

Does every variable passed to zip() act like another for-loop?

将其视为一个循环,向 zip 添加 1 个参数将在每次迭代中添加 O(1),或 O(n) 所有 n 次迭代。 (假设最小参数的大小为 n)
例如,对于 zip(X1,X2,...,Xm) 你正在做 O(mn) 工作,但是 m 是常数,所以它是 O(n)。 (再次假设参数的最小大小是 n)

关于python - 使用 zip() 函数的 Python 列表理解的复杂度为 O(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54444609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com