我试图用python编写一个非常简单的代码,因为我不明白如果我们有两个参数,line.split
是如何工作的。但是,这段代码返回一个错误,我也不明白line.split
的用途。你能帮帮我吗?在
from operator import itemgetter
import sys
word = None
count = 0
line= 'foo 1' \
''
line = line.strip()
try:
word, count = line.split('\t', 1)
except:
print('error')
count = int(count)
print(word, count)
Split根据传递给它的分隔符返回字符串拆分的单个列表。在
'hey, you'.split(',')
返回['hey', ' you']
,如果提供两个变量,则可以对其进行解压缩。在如果要拆分的字符串拆分为两个以上值的列表,则会出现错误
ValueError: too many values to unpack
在您的例子中,只需检查
split
的输出是什么,它可能是一个只包含一个元素foo 1
的列表,该元素无法解包。在究竟返回了什么错误消息?如果它是由
line.split('\t')
行引起的ValueError
,那么这可能意味着该字符串实际上并不包含制表符,而是包含许多空格。如果要在制表符或空格上拆分字符串,请省略参数:line.split()
line.split('\t')
只返回一个值,而通过word, count
您需要两个值,因此会导致错误:ValueError: not enough values to unpack (expected 2, got 1)
如果在split函数中不带任何参数将该行更改为
word, count = line.split()
,则默认情况下,它将在任何空白处拆分,并正确返回预期的两个值,不会出错。在相关问题 更多 >
编程相关推荐