gpt4 book ai didi

python - 列表中的字符串数据到python中的数值|不可散列类型 : 'list'

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:30 25 4
gpt4 key购买 nike

我有一个列表如下,这是一个巨大的列表,这只是其中的一部分。

 my_list= [['I. R. Palmer','U. Kersten'],
['H. Breitwieser', 'U. Kersten'],
['Halvard Skogsrud', 'Boualem Benatallah', 'Fabio Casati', 'Manh Q. Dinh'],
['Stefano Ceri', 'Piero Fraternali', 'Stefano Paraboschi']]

我想为列表中的每个字符串分配一个唯一的数值。如果一个字符串在其他地方重复,则为其分配相同的先前值

new_list= [[0,1],
[2,1],
[3,4,5,6],
[7,8,9]]

我试过了

pd.factorize(my_list)

但是我得到了

unhashable type: 'list'

最佳答案

您可以展平列表,使用 factorize 处理一维数组,通过 zip 创建字典并在嵌套列表理解中替换:

a = [y for x in my_list for y in x]
f1, f2 = pd.factorize(a)
d = dict(zip(f2[f1], f1))

new_list = [[d[y] for y in x] for x in my_list]
print (new_list)
[[0, 1], [2, 1], [3, 4, 5, 6], [7, 8, 9]]

关于python - 列表中的字符串数据到python中的数值|不可散列类型 : 'list' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53758237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com