我有一个列表,比方说 L = ['apple','bat','apple','car','pet','bat']
。
我想把它转换成 Lnew = [ 1,2,1,3,4,2]
。
每个唯一的字符串都与一个数字相关联。
我有一个使用 hashmap
的 java 解决方案,但我不知道如何在 python 中使用 hashmap
。请帮忙。
原文由 BuggerNot 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个列表,比方说 L = ['apple','bat','apple','car','pet','bat']
。
我想把它转换成 Lnew = [ 1,2,1,3,4,2]
。
每个唯一的字符串都与一个数字相关联。
我有一个使用 hashmap
的 java 解决方案,但我不知道如何在 python 中使用 hashmap
。请帮忙。
原文由 BuggerNot 发布,翻译遵循 CC BY-SA 4.0 许可协议
x = list(set(L))
dic = dict(zip(x, list(range(1,len(x)+1))))
>>> [dic[v] for v in L]
[1, 2, 1, 3, 4, 2]
原文由 Colonel Beauvel 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
这是一个快速的解决方案:
创建一个将所有唯一字符串映射到整数的字典:
将原始列表中的每个字符串映射到其各自的整数: