Python 添加了条件值的字典创建
Python dictionary creation with conditioned values added
我想用 2 个 numpy 数组制作字典,arr1
作为字典的键,arr2
作为字典的值。我遇到的问题是我不想简单地按顺序向键添加值,而是在键的条件满足时添加特定值,arr1
的元素已满。为此,我有另一个 numpy 数组 arr3
,其元素比 arr1
和 arr2
多一个元素,如果键位于实际索引和 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}
我想用 2 个 numpy 数组制作字典,arr1
作为字典的键,arr2
作为字典的值。我遇到的问题是我不想简单地按顺序向键添加值,而是在键的条件满足时添加特定值,arr1
的元素已满。为此,我有另一个 numpy 数组 arr3
,其元素比 arr1
和 arr2
多一个元素,如果键位于实际索引和 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}