如何通过map或lambda函数提取字典的键值

1 投票
1 回答
1336 浏览
提问于 2025-04-17 21:02

现在我有一个字典:

d = {'key1':
        {'key11':1,
         'key12':2},
     'key2':
        {'key21':3,
         'key22':4}
    }

怎么把它提取成一个元组的列表呢:

l = [('key1','key11',1),
     ('key1','key12',2),
     ('key2','key21',3),
     ('key2','key22',4)]

可以使用map或者lambda函数
我的Python版本是Python2.7

1 个回答

2

你可以用列表推导式来得到你想要的结果。

print [(k, k1, d[k][k1]) for k in d for k1 in d[k]]

结果

[('key2', 'key22', 4),
 ('key2', 'key21', 3),
 ('key1', 'key12', 2),
 ('key1', 'key11', 1)]

如果你想要的结果是排序过的,像你问题里提到的那样,

print sorted([(k, k1, d[k][k1]) for k in d for k1 in d[k]])

结果

[('key1', 'key11', 1),
 ('key1', 'key12', 2),
 ('key2', 'key21', 3),
 ('key2', 'key22', 4)]

撰写回答