首页 > 解决方案 > 明智地访问字典组件中列表的元素

问题描述

假设我有一个字典(MxN = 4x3 矩阵),其中包含整数键和列表值,如下所示:

d={1:[10,11,12], 2:[13,14,15], 3:[16,17,18], 4:[19,20,21]}

我正在尝试获取如下所示的列表:

new_list_1 = [10,13,16,19]

在这种情况下,我试图获取字典中每个值(列表)的第一个元素并将其放入一个新列表中。但是,我也想对其他索引执行此操作,例如:

new_list_2 = [11,14,17,20]

或者

new_list_3 = [12,15,18,21]

一旦我有了这些列表,理想情况下我想把它们放在一个维度为 NxM 的新字典中:

d_new = {0:new_list_1, 1:new_list_2, 2:new_list_3}

谢谢!

标签: pythonlistdictionaryindexing

解决方案


您可以使用

new_list_1 = [v[0] for v in d.values()]
new_list_2 = [v[1] for v in d.values()]
new_list_3 = [v[2] for v in d.values()]

然后使用

d_new = {0:new_list_1, 1:new_list_2, 2:new_list_3}

的价值d_new

{0: [10, 13, 16, 19], 1: [11, 14, 17, 20], 2: [12, 15, 18, 21]}

或者:

d_new = {i:[v[i] for v in d.values()] for i in range(0,3)}

也会这样做


推荐阅读