gpt4 book ai didi

python - 从排序列表中获取大于给定数字的第一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:11 25 4
gpt4 key购买 nike

我有两个列表。列表 B 就像一个数据库,我需要将列表 A 的每个元素与它一一比较。让我们说

B = [0.6, 1.7, 3, 4.5]
A = [0.6, 0.9, 1.2, 1.5, 2, 2.5, 3, 4, 4.5]

B 是一个排序列表,因此对于每个 A[i],每当算法在 B 中找到 >= A[i] 的数字时,它应该将其作为输出返回。所以我的输出应该是这样的:

C = [0.6, 1.7, 1.7, 1.7, 3, 3, 3, 4.5, 4.5]

能否请您建议我最简单的解决方案,尽可能避免嵌套循环?

最佳答案

如果您可以使用第 3 方库,一个解决方案是 NumPy via np.searchsorted :

import numpy as np

B = np.array([0.6, 1.7, 3, 4.5])
A = [0.6, 0.9, 1.2, 1.5, 2, 2.5, 3, 4, 4.5]

res = B[np.searchsorted(B, A)]

array([ 0.6, 1.7, 1.7, 1.7, 3. , 3. , 3. , 4.5, 4.5])

这将比顺序循环或基于标准库中的 bisect 的算法更有效。

关于python - 从排序列表中获取大于给定数字的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53778849/

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