Python中的类型错误!

0 投票
4 回答
2418 浏览
提问于 2025-04-16 01:23
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 可以正确地把每个元组拆分成 uv
  • 当你写 if v is not closed 时,你可能是想说 if f not in closed,假设 closed 是某种字典
  • 如果 close.add 是一个方法(可能是集合的方法?),那么它需要用括号 () 来调用,而不是用方括号 []

撰写回答