gpt4 book ai didi

python - 简明 Python 3.x 批量字典查找

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:47 28 4
gpt4 key购买 nike

我有大量字符串要转换为整数。在 Python 3.7 中执行列表字典查找的最简洁方法是什么?

例如:

d = {'frog':1, 'dog':2, 'mouse':3}
x = ['frog', 'frog', 'mouse']
result1 = d[x[0]]
result2 = d[x]

result 等于 1result2 是不可能的:

TypeError                                 Traceback (most recent call last)
<ipython-input-124-b49b78bd4841> in <module>
2 x = ['frog', 'frog', 'mouse']
3 result1 = d[x[0]]
----> 4 result2 = d[x]

TypeError: unhashable type: 'list'

一种方法是:

result2 = []
for s in x:
result2.append(d[s])

结果为 [1, 1, 3] 但需要一个 for 循环。这对大型列表来说是最佳选择吗?

最佳答案

字典的键必须是可散列的,而列表(例如 x)则不是,这就是为什么您会收到 TypeError: unhashable type: 'list' 当您尝试使用 x 作为索引字典 d 的键时出现错误。

如果您尝试执行批量字典查找,您可以改用 operator.itemgetter 方法:

from operator import itemgetter
itemgetter(*x)(d)

返回:

(1, 1, 3)

关于python - 简明 Python 3.x 批量字典查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54621766/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com