从列表列表中的键创建映射值的python列表

2024-09-30 08:34:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python dict如下

mymap={'java':40,'haskell':60,'ruby':50,'python':70,'scala':30,'lisp':80,'scheme':75}

我把钥匙放在了子列表里

mapkeys = [['haskell','java'],['lisp','python'],['scala','scheme'],['ruby']]

现在,我需要创建这些键的值列表,如下所示

[[60,40],[80,70],[30,75],[50] ]

我试着使用列表理解,但没有得到任何结果


Tags: 列表haskelljavadict钥匙schemerubyscala
3条回答

试试这个:

[[mymap[k] for k in sublist] for sublist in mapkeys]

如果您发现lambda表达式比列表理解语法更容易阅读:

map(lambda l: map(mymap.get,l), mapkeys)

(就我个人而言,我会说“简洁到难以理解的程度”,但我会让你下定决心。)

试试这个:

>>> [[mymap[k] for k in l] for l in mapkeys]
[[60, 40], [80, 70], [30, 75], [50]]

对于非嵌套列表,请删除方括号并反转for语句:

>>> [mymap[k] for l in mapkeys for k in l]
[60, 40, 80, 70, 30, 75, 50]

相关问题 更多 >

    热门问题