gpt4 book ai didi

python - 列表 2 中的哪些数字大于和小于列表 1 中的每个数字

转载 作者:太空狗 更新时间:2023-10-29 20:43:58 28 4
gpt4 key购买 nike

我正在使用 python。我有两个列表,列表 1 是 7000 个整数,列表 2 是 25000 个整数。我想遍历列表 1 中的每个数字,找到列表 2 中比列表 1 中每个数字大的最接近数字和小于列表 1 中每个数字的最接近数字,然后计算列表 2 中这两个数字之间的差异。到目前为止我有:

for i in list1:
for j in list 2:
if list2[j]<list1[i]:
a = max(list2)
elif list2[j]>list1[i]:
b = min(list2)
interval = b-a

这似乎行不通。我想在列表 2 中找到小于列表 1 中特定数字的显式数字并知道最大值,然后找出列表 2 中大于列表 1 中数字的最小数字。有没有人有任何想法?谢谢

最佳答案

这是一个使用 NumPy 的矢量化解决方案。它应该非常快,因为它在 Python 中没有循环(除了最后的打印阶段)。

import numpy as np

# set up fake data
l1 = np.array([1.9, 2, 2.1]) # or whatever list you have
l2 = np.array([1, 2, 5, 10]) # as above
l2.sort() # remove this line if it's always sorted

# the actual algorithm
indexes = np.searchsorted(l2, l1, side='right')
lower = l2[indexes - 1]
upper = l2[indexes]
diffs = upper - lower

# print results for debugging
for value, diff in zip(l1, diffs):
print "value", value, "gap", diff

这是上面硬编码测试数据的输出:

value 1.9 gap 1
value 2.0 gap 3
value 2.1 gap 3

关于python - 列表 2 中的哪些数字大于和小于列表 1 中的每个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791550/

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