【发布时间】:2020-12-06 16:09:55
【问题描述】:
我有一个清单。
mapper = {"a": 9, "b": 7}
A = ["a", "b"]
我想得到:
result = [9, 7]
我知道有多种方法可以实现,例如:
result = [mapper[char] for char in A]
result = list(map(lambda x: mapper[x], A))
对于第二种方式,我们可以使用operator模块而不是使用lambda吗?
我找到了一个叫operator.getitem()的方法,我尝试使用
result = list(map(operator.getitem(mapper), A))
但这会引发异常。
我知道list(map(lambda x: operator.getitem(mapper, x), A)) 会起作用,但我只是想避免使用lambda。
我找到了this question,但没有找到解决办法。
【问题讨论】:
-
itertools.starmap(operator.getitem, zip(itertools.repeat(mapper), A))之类的东西应该可以。但是列表理解显然要容易得多。
标签: python python-3.x