根据键列表从字典中获取值

Kev*_*ayo 2 python python-3.x

我有一个清单。

mapper = {"a": 9, "b": 7}
A = ["a", "b"]
Run Code Online (Sandbox Code Playgroud)

我想得到:

result = [9, 7]
Run Code Online (Sandbox Code Playgroud)

我知道有多种方法可以实现这一目标,例如:

result = [mapper[char] for char in A]
result = list(map(lambda x: mapper[x], A))
Run Code Online (Sandbox Code Playgroud)

对于第二种方式,我们可以使用operator模块而不是使用 lambda 吗?

我找到了一个名为 的方法operator.getitem(),我尝试使用

result = list(map(operator.getitem(mapper), A))
Run Code Online (Sandbox Code Playgroud)

但这会引发异常。

我知道list(map(lambda x: operator.getitem(mapper, x), A))会起作用,但我只想避免使用lambda.

我找到了这个问题,但我没有找到解决方案。

ran*_*mir 9

看起来您正在寻找operator.itemgetter(注意第二种形式,它返回多个项目):

>>> operator.itemgetter(*A)(mapper)
(9, 7)
Run Code Online (Sandbox Code Playgroud)