我有一个元组列表File2,其值如下:
(1,2,[3,4],2)
(3,5,[2,3,4,5,6,7],3)
我也有一个数据框,该数据框具有一个名为“ Count”的列,并且我想构建一个字典,其中将我的元组列表作为键,将“ Count”列作为值:
File3 = dict(zip(File2,df.Count))
但我收到此错误:
unhashable type: 'list'
您能告诉我如何解决这个问题吗?
[3,4]
在(1,2,[3,4],2)
一个列表中。列表不可散列,只有可散列的对象才可以是字典的键。要将所有列表转换为元组,可以编写如下函数
def make_tuples(l):
return tuple(make_tuples(i) if isinstance(i,list) else i for i in l)
如果存在一个包含一个包含列表的元组的元组,则以上操作将失败。那可能不会出现,但是在那种情况下
from collections.abc import Sequence
def make_tuples(l):
return tuple(make_tuples(i) if isinstance(i, Sequence) else i for i in l)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句