在for循环中使用split会导致上述异常。但是当从for循环中获取独立元素时,它会起作用:
>>> for k,v in x.split("="):
... print k,v
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> y = x.split("=")
>>> y
['abc', 'asflskfjla']
>>> k,v = y
>>> k
'abc'
>>> v
'asflskfjla'
一个解释将是感激的-当然也是正确的语法for循环版本。在
for
循环期望iterable中的每个项都可以解压为两个变量。所以在你的情况下,它看起来像是:每个iterable中的每个项目都可以拆分为
^{pr2}$k
和v
组件。在您的情况下,它们不能,因为x.split('=')
的输出是包含两个以上字符的字符串列表:如果希望此行为,只需将
s.split()
包装在列表中:x.split
返回字符串列表,如您从y
变量中看到的那样。当您迭代该元素时,它获取列表'abc'
的第一个元素,并尝试将其绑定到元组k, v
。事实上,要把一个字符串中的三个字符(一个字符串)分解成三个字符,这就要求你把它分解成两个字符串。在相关问题 更多 >
编程相关推荐