Python 嵌套列表中所有元素的集合
Python Set of All Element in a Nested List
我想通过这个函数将嵌套列表return中的所有元素以集合的形式出现,但是出现了错误。
list = [[0,4], [2,4], 5, [[[7,2], 3], 4]]
def setof(list):
bag = set()
for item in list:
try: bag.add(item)
except TypeError: bag.add(setof(item))
return bag
print(setof(list))
Errors:
try: bag.add(item)
TypeError: unhashable type: ‘list’
During handling of the above exception, another exception occurred:
print(setof(list))
except TypeError: bag.add(setof(item))
TypeError: unhashable the: ‘set’
有谁知道为什么会发生这种情况或如何解决它,或者更好的方法吗?这是我第一次来这里。谢谢!
bag.add(setof(item))
正在尝试添加一个集合作为 bag
的元素,而不是组合这些集合。使用
bag.update(setof(item))
您的问题来自 set.add(list)
。这不是 Python 设置接受的东西。所以,你想把所有的内部列表变成集合。试试这个:
def setof(lst):
bag = set()
for item in lst:
try:
bag.add(set(item))
except TypeError:
bag.add(set([item]))
return bag
我想通过这个函数将嵌套列表return中的所有元素以集合的形式出现,但是出现了错误。
list = [[0,4], [2,4], 5, [[[7,2], 3], 4]]
def setof(list):
bag = set()
for item in list:
try: bag.add(item)
except TypeError: bag.add(setof(item))
return bag
print(setof(list))
Errors:
try: bag.add(item)
TypeError: unhashable type: ‘list’
During handling of the above exception, another exception occurred:
print(setof(list))
except TypeError: bag.add(setof(item))
TypeError: unhashable the: ‘set’
有谁知道为什么会发生这种情况或如何解决它,或者更好的方法吗?这是我第一次来这里。谢谢!
bag.add(setof(item))
正在尝试添加一个集合作为 bag
的元素,而不是组合这些集合。使用
bag.update(setof(item))
您的问题来自 set.add(list)
。这不是 Python 设置接受的东西。所以,你想把所有的内部列表变成集合。试试这个:
def setof(lst):
bag = set()
for item in lst:
try:
bag.add(set(item))
except TypeError:
bag.add(set([item]))
return bag