使用数据结构
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个块和每个列,如上所述。由于我将每个列表(a-z)传递给函数,因为参数是否可以使用比我自己的想法更有效的数据结构?
答案 0 :(得分:3)
尝试使用zip
并传递dict_list
值unpacked
像这样的东西 -
>>> [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]
}
]