【发布时间】:2019-09-03 00:42:56
【问题描述】:
我有一个列表列表,我想把它变成一组列表,以便与其他集合进行比较。
例如,我想做:
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
myset = set(mylist)
myset
得到:
{[1, 2, 3], [4, 5, 6], [7, 8, 9]}
但是弹出这个错误:
Traceback (most recent call last):
File "A:/Users/.../Testfile.py", line 2, in <module>
myset = set(mylist)
TypeError: unhashable type: 'list'
我也试过这个,一个解决方案贴在https://stackoverflow.com/questions/30773911/:
myset = set(x for lst in mylist for x in lst)
print(myset)
但这会合并所有内部列表。
{1, 2, 3, 4, 5, 6, 7, 8, 9}
有没有办法将mylist 转换成一组列表?
【问题讨论】:
-
@Hari 问题在于它仅适用于可散列项的列表,而列表不可散列,正如错误消息指出的那样。