Python循环打印次数过多,goals和assists字段重复输出怎么解决
问题原因
你的代码里goals、assists重复打印是多余的内层for v in lightning[k]循环导致的:lightning[k]是长度为2的列表,分别存储对应球员的进球数和助攻数,所以这个内层循环会执行2次,每次都打印一遍goals和assists的内容,最终就出现了重复显示两次的问题。
另外你用with open语法打开文件时,会在代码块执行结束后自动关闭文件,额外写的f.close()是多余的,可以直接删除。
修复后的完整代码
def main(): lightning = dict() with open("lightning.txt","r") as f: for name,goals,assists in zip(f,f,f): lightning[name.strip()] = [int(goals),int(assists)] title_Player = 'Player' title_Goals = 'Goals' title_Assists = 'Assists' title_Total = 'Total' print('{:<10}{:^6}{:^8}{:^6}'.format(title_Player, title_Goals, title_Assists, title_Total)) highest_points = 0 for k in lightning: goals = lightning[k][0] assist = lightning[k][1] total = goals + assist print('{:<8}'.format(k), end = ' ') # 直接打印进球、助攻,删除原来的内层for循环即可 print('{:^6}{:^8}'.format(goals, assist), end = ' ') print('{:^6}'.format(total)) if total > highest_points: highest_points = total top_scorer = k print(top_scorer, 'is the top scorer with', highest_points, 'points') if __name__ == '__main__': main()
内容的提问来源于stack exchange,提问作者user17019363
相关产品推荐
相关产品推荐

