Python处理含多空格文本排序时报too many values to unpack错误如何解决
报错原因
你调用line.split(' ')时默认会按所有空格对整行做全量拆分,当队名字段包含空格时,拆分得到的列表长度会大于3,赋值给group, score, team三个变量时就会触发值不匹配的解包错误。
修复方案
利用Python字符串split()方法的maxsplit参数,指定最多拆分2次,前两次拆分得到组、分数字段,剩余所有内容全部归属队名字段,就能兼容带空格的队名:
data = [] with open('data.txt') as f: for line in f: # 先去掉行尾换行/空白符,再最多拆分2次 group, score, team = line.strip().split(maxsplit=2) data.append((int(score), group.strip(), team.strip())) data.sort(reverse=True) print("Top Scores:") # 直接切片取前3条,写法更简洁 for score, group, team in data[:3]: print(f'{group} - {score} - {team}')
运行结果
用你提供的测试文件运行后,输出结果为:
Top Scores: asedd - 5 - dont do it swsds - 3 - never mind us sklks - 2 - just cool
内容的提问来源于stack exchange,提问作者rbutrnz
相关产品推荐
相关产品推荐

