Python 添加了条件值的字典创建

Python dictionary creation with conditioned values added

我想用 2 个 numpy 数组制作字典,arr1 作为字典的键,arr2 作为字典的值。我遇到的问题是我不想简单地按顺序向键添加值,而是在键的条件满足时添加特定值,arr1 的元素已满。为此,我有另一个 numpy 数组 arr3,其元素比 arr1arr2 多一个元素,如果键位于实际索引和 arr3 的下一个元素之间,[i,i+1) 与实际索引对应的值将是与实际键配对的值。

例如:

dict = {}
arr1 = np.array([0,9])
arr2 = np.array([0,5])
arr3 = np.array([0,5,10])
..

字典应该是 {0:0,9:5}

这是一种选择。也许可以用更少的代码来完成。

import numpy as np

dict_ = {}
arr1 = np.array([0,9])
arr2 = np.array([0,5])
arr3 = np.array([0,5,10])

for i,(k,v) in enumerate(zip(arr1, arr2)):
    if arr3[i] <= arr1[i] and arr1[i] < arr3[i+1]:
        dict_[k] = v
boundsWithKeyValues = zip(arr3[:-1], arr3[1:], arr1, arr2)
result = {k: v for kMin, kMax, k, v in boundsWithKeyValues if kMin <= k <= kMax}