【发布时间】:2021-06-06 16:58:13
【问题描述】:
我写了一个函数,用集合替换列表中的所有元素
def get_set(arr):
return list(map(lambda x: set(x),arr))
通过例子来工作
A=[(0, 3), (0, 4), (3, 4)]
A=get_set(A)
我们得到
A=[{0, 3}, {0, 4}, {3, 4}]
但如果我使用 thif 函数为例
B=[({0, 3}, {0, 4}), ({0, 3}, {3, 4}), ({0, 4}, {3, 4})]
get_set(B)
我收到一个错误
<ipython-input-50-10fd7735b9ce> in <lambda>(x)
1 def get_set(arr):
----> 2 return list(map(lambda x: set(x),arr))
TypeError: unhashable type: 'set'
如何修复我的代码并获取?
B=[{{0, 3}, {0, 4}}, {{0, 3}, {3, 4}}, {{0, 4}, {3, 4}}]
【问题讨论】:
-
请注意:
lambda x: set(x)和set之间没有实际区别。 -
简短的回答是你不能:集合是可变的,因此不可散列。
标签: python python-3.x list set