Python读取闪电队球员数据txt文件转为指定格式字典问题咨询
问题原因
你的原始代码采用逐行遍历的逻辑处理文件,但你的lightning.txt数据是每3行对应一个球员的完整条目:第一行是球员姓名,第二行是进球数,第三行是助攻数。逐行处理时每行只有单个内容,split()后得到的列表长度为1,因此pa[1:]是空列表,同时数值行也被错误当成了字典的键。
调整后的代码
dictionary = {} file = 'lightning.txt' with open(file) as d: # 读取所有行,提前去除每行的换行符和首尾空白,同时过滤空行 lines = [line.strip() for line in d if line.strip()] # 每3行处理一个球员数据 for i in range(0, len(lines), 3): name = lines[i] goals = int(lines[i+1]) assists = int(lines[i+2]) dictionary[name] = [goals, assists] print(dictionary)
运行输出
运行后会得到你期望的字典结构:{'Stamkos': [46, 50], 'Hedman': [30, 50], 'Point': [40, 50]}
逻辑说明
- 提前读取文件所有行,用
strip()去除每行的换行符、首尾空格,同时过滤空行避免格式出错 - 按步长3遍历行索引,每次取连续3行分别对应球员姓名、进球、助攻
- 数值类的进球、助攻默认转成整数类型,方便后续做数值计算,如果需要保留字符串格式去掉
int()转换即可
内容的提问来源于stack exchange,提问作者user17019363
相关产品推荐
相关产品推荐

