【问题标题】:return a list or array that contains values based on dictionary keys without using for loop返回包含基于字典键的值的列表或数组,而不使用 for 循环
【发布时间】:2023-01-29 19:25:48
【问题描述】:

我有一本字典 {'A':1,'B':2,'C':3}

我想将列表 =['A','B','A','A','B] 映射到字典值不使用 for 循环或不必要的 if 语句输出应该是数组或列表中的 [1,2,1,1,2]。

我尝试使用 np.vectorize 和 map 来做到这一点,但它是一个 for 循环。我需要在不使用任何循环或不必要的 if 语句的情况下执行此操作以获得上述所需的结果。

【问题讨论】:

  • 为什么你不想使用最好的解决方案。一个循环。
  • 列表理解算作for循环吗?
  • 列表理解是一个 for 循环,本质上只是节省了编码空间。

标签: python pandas list numpy dictionary


【解决方案1】:

你可以使用itemgetter

from operator import itemgetter

d = {'A': 1, 'B': 2, 'C': 3}
lst = ['A', 'B', 'A', 'A', 'B']
lst = itemgetter(*lst)(d)
print(lst) # (1, 2, 1, 1, 2)

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2013-06-09
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2021-07-01
    • 2018-07-24
    • 2017-04-05
    相关资源
    最近更新 更多