python - 包含列表的字典列表

标签 python list numpy dictionary

有了数据结构

dict_list [0] {key1: [1, 2, 3]
               key2: [4, 5, 6]
               key3: [7, 8, 9] 
               key4: [10, 11, 12]      }
          ...
          ...

          [4] {key13: [37, .., 39]
               key14: [40, .., ..]
               key15: [43, .., ..]
               key16: [46, .., 48] }

我想逐列、逐字典地对短列表中的每个部分进行分段。

例如:

a = [1, 4, 7, 10]
b = [2, 5, 8, 11]
....
z = [39, .., .., 40]

创建这些列表(或元组)并将其作为 *args 发送到 numpy 函数,并且该函数将为每个列表 a、b、c、d…z 进行迭代。

到目前为止我的代码是:

 for i in range(len(read_list)): #iterating dictionary list to extract values
   for key, value in read_list[i].iteritems():
        print value[0]

这会将 1,4,7,10,12....37.....46 全部打印在一个列表中,并且仅打印 1 列。但我的问题是我需要轻松地迭代出 4 block 和每列,如上所述。由于我将把每个列表(a-z)作为参数传递给函数,是否有比我自己的想法更有效的数据结构?

最佳答案

尝试使用zip并传递 dict_listunpacked .
像这样的东西 -

>>> [sorted(c) for e in dict_list for c in zip(*e.values())]
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12], [37, 40, 43, 46], [39, 41, 44, 47], [40, 42, 45, 48]]

编辑 这是 dict_list 用于测试它(根据问题中的描述构建它) -

dict_list = [
    {   
        "key1": [1, 2, 3],
        "key2": [4, 5, 6],
        "key3": [7, 8, 9],
        "key4": [10, 11, 12]
    },
    {   
        "key13": [37, 39, 40],
        "key14": [40,41,42] ,
        "key15": [43,44, 45] ,
        "key16": [46,47,48]
    }
]

关于python - 包含列表的字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31454766/

相关文章:

python - 如何在打印矩阵之前在每行之前添加额外的空格?

python - 按值对元组排序,当值相等时使用列表

python - 如何在列表中换行?

python - 如何使用 Numpy 在 Python 中 reshape 数组

python - Pandas 的时间差异

php - 使用python将数组打包为16位字符串

python - 如何在不在我的脚本中硬编码的情况下找到 msbuild 的位置?

python - 为什么 Python 3 的常规字符串替换会吞掉字符?

list - 为什么 Elixir 在标准库中有这么多类似的列表类型?

python - NumPy:每m个点选择n个点