Python 将字符串列表映射到整数列表

新手上路,请多包涵

假设我有一个清单

l = ['michael','michael','alice','carter']

我想将其映射到以下内容:

 k = [1,1,2,3]

michael 对应 1,alice 对应 2 等。Python 中是否有函数可以轻松做到这一点?

原文由 Michael 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 445
2 个回答

查看 ord ,它给出了给定字符的 unicode 编号:

 >>> letters = ['a','b','c','d','e','f','g']
>>> [ord(x) for x in letters]
[97, 98, 99, 100, 101, 102, 103]

所以你可以做 ord(x)-96 转换 a-z1-26 (注意大写等)。

 l = ['a','b','a','c']
k = [ord(x)-96 for x in l] # [1,2,1,3]

同样,注意大写和非字母字符。

原文由 mathematical.coffee 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 Pandas 怎么样?

 import pandas as pd
l = ['michael','michael','alice','carter']
pd.Series(l).astype('category').cat.codes.values

原文由 Omri 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题