line="101 : johnny 'wave-boy' jones:usa:8.32:fish:21"
s={}
(identity,name,country,average,boardtype,age)=line.split()
print(identity)
我的输出是:
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
(identity,name,country,average,boardtype,age)=line.split()
ValueError: need more than 5 values to unpack
答案 0 :(得分:3)
您正在以空白字符分割该行。我想你想把它分成冒号,你可以用
来实现identity, name, country, average, boardtype, age = line.split(':')
答案 1 :(得分:2)
line.split()
返回['101', ':', 'johnny', "'wave-boy'", 'jones:usa:8.32:fish:21']
它的长度为5,而你将它打包到一个有6个元素的元组。
在不传递参数的情况下拆分字符串时,该方法的行为为string.split(' ')
我认为您可以使用line.split(':')
答案 2 :(得分:1)
分割line
时,会得到5个值的列表,并且您尝试将其分配给6个值
即
>>> line="101 : johnny 'wave-boy' jones:usa:8.32:fish:21"
>>> line.split()
['101', ':', 'johnny', "'wave-boy'", 'jones:usa:8.32:fish:21']
>>> (a,b,c,d,e) = line.split()
>>> (a,b,c,d,e,f) = line.split()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 5 values to unpack
答案 3 :(得分:0)
以下是您split()
字符串时发生的事情:
>>> line="101 : johny 'wave-boy' jones:usa:8.32:fish:21"
>>> line.split()
['101', ':', 'johny', "'wave-boy'", 'jones:usa:8.32:fish:21']
>>> len(line.split())
5
但你要求的是6元组。
答案 4 :(得分:0)
看起来您想使用冒号(':'
)作为split
的分隔符。当你在没有任何参数的情况下调用split
时,默认为空格作为分隔符。