我有很多字符串需要转换成整数。在Python 3.7中,最简洁的方法是什么,可以对列表执行字典查找操作?
例如:
d = {'frog':1, 'dog':2, 'mouse':3}
x = ['frog', 'frog', 'mouse']
result1 = d[x[0]]
result2 = d[x]
result
的值为 1
,但不可能存在 result2
:
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]
的结果,但需要使用循环。对于大型列表来说,这是否是最优解呢?
result2
期望得到什么结果?不清楚输出应该是什么。你有阅读其他提到这个错误的帖子吗? - jonrsharpe[d[k] for k in x]
这样的东西? - iz_[1, 1, 3]
。编辑以提供可能的结果。 - Stevelist(map(d.get, x))
。你应该自己尝试每个解决方案,看看哪个最好。从我尝试过的情况来看,itemgetter
是最快的。 - iz_