python - 用键替换python列表元素

标签 python list key

我有一个非唯一字符串列表:

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/

相关文章:

python - Django Postgres ArrayField makemigrations

python - 将字符串转换为字典?

c++ - std::list 在首次构造时是否为空 - 即使它是类的成员?

mysql - 我应该在此查询中使用哪些 mysql 索引?

python - 基于组分配的 Pandas 数据帧到稀疏矩阵(如果在组中则为 1,如果不在组中则为 0)

java - 如何将此代码转换为 JAVA 8 Stream API?

python - logger.removeHandler(logger.handlers[0]) 如何抛出 ValueError : list. 删除(x) : x not in list?

key - NCurses 和 ESC、ALT 键

Python:元组/字典作为键、选择、排序

python - 启动 Bokeh 服务器