【问题标题】:Python dictionary creation with conditioned values added添加条件值的 Python 字典创建
【发布时间】:2021-12-29 14:49:38
【问题描述】:

我想从 2 个 numpy 数组中创建一个字典,arr1 作为字典的键,arr2 作为字典的值。我遇到的问题是我不想简单地按该顺序向键添加值,而是要在键的条件下添加特定值,arr1 的元素已满。为此,我有另一个 numpy 数组 arr3arr1arr2 多一个元素,如果键在实际索引和 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}

【问题讨论】:

    标签: python arrays numpy dictionary numpy-ndarray


    【解决方案1】:
    boundsWithKeyValues = zip(arr3[:-1], arr3[1:], arr1, arr2)
    result = {k: v for kMin, kMax, k, v in boundsWithKeyValues if kMin <= k <= kMax}
    

    【讨论】:

      【解决方案2】:

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

      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
      

      【讨论】:

      • 感谢您的回答
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 2016-05-15
      • 2016-12-21
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      相关资源
      最近更新 更多