我有一个非唯一字符串列表:
list = ["a", "b", "c", "a", "a", "d", "b"]
我想用唯一标识每个字符串的整数键替换每个元素:
list = [0, 1, 2, 0, 0, 3, 1]
数字无关紧要,只要它是唯一标识符即可。
到目前为止,我能想到的就是将列表复制到一个集合中,并使用集合的索引来引用列表。不过,我确信有更好的方法。
最佳答案
这将保证唯一性并且 ID 从 0
开始是连续的:
id_s = {c: i for i, c in enumerate(set(list))}
li = [id_s[c] for c in list]
换句话说,你不应该使用 'list'
作为变量名,因为它会隐藏内置类型 list
。
关于python - 用键替换python列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603164/