免责声明:我不是经验丰富的 Python 用户。
我遇到了一个任务,现在我正试图找出用 Python 完成它的最优雅的方法。
这是任务本身:给定一个list
字符串返回一个int
s 列表(每个int
从 0 到 N - 1,其中 N 是列表中唯一字符串的数量),其中每个 int 对应于初始列表中的某个字符串。相同的字符串应该映射到相同的数字,不同的字符串 - 映射到不同的数字。
我想出的第一件事似乎“有点”过于复杂:
a = ["a","b","a","c","b","a"]
map(lambda x: dict(map(lambda x: reversed(x), enumerate(set(a))))[x], a)
上面代码的结果:
[0, 2, 0, 1, 2, 0]