Python中的类型错误!
closedset = set()
root = (5,6)
for u,v in root:
if v is not closedset:
closedset.add(root)
print closedset
错误信息:
for u,v in root:
类型错误:无法解包非序列
我该如何处理这种类型的错误呢?
4 个回答
0
for u,v in [root]:
print u,v
这段代码会实现你想要的功能。
1
root = [(5,6)]
...应该可以正常工作。for 是用来遍历一个列表或集合的,它会先返回 u,然后返回 v。如果你想同时返回集合的两个部分,你需要把它自己加到一个列表里。
0
我不太明白你想要做什么。也许是:
roots = [(5, 6), (2, 3)]
for u, v in roots:
if f not in closed:
closed.add(v)
print closed
注意几个变化:
roots
现在是一个包含元组的列表。使用for u, v in roots
可以正确地把每个元组拆分成u
和v
- 当你写
if v is not closed
时,你可能是想说if f not in closed
,假设closed
是某种字典 - 如果
close.add
是一个方法(可能是集合的方法?),那么它需要用括号()
来调用,而不是用方括号[]