我有一个清单,比方说
L = ['apple','bat','apple','car','pet','bat'].
我想把它转换成
Lnew = [ 1,2,1,3,4,2].
每个唯一字符串都与一个数字相关联.
我有一个java解决方案使用hashmap,但我不知道如何hashmap在python中使用.请帮忙.
aci*_*obi 14
这是一个快速的解决方案:
l = ['apple','bat','apple','car','pet','bat']
Run Code Online (Sandbox Code Playgroud)
创建一个将所有唯一字符串映射到整数的dict:
d = dict([(y,x+1) for x,y in enumerate(sorted(set(l)))])
Run Code Online (Sandbox Code Playgroud)
将原始列表中的每个字符串映射到其各自的整数:
print [d[x] for x in l]
# [1, 2, 1, 3, 4, 2]
Run Code Online (Sandbox Code Playgroud)