KeyError的问题:0

时间:2018-05-17 21:07:07

标签: python

我已经发出了我的代码一直在说KeyError:0的地方,我已经搜遍了所有地方并且无法找到解决此问题的方法

    student_scores = {'0':65.0, '1':54.7}
    average_score = 66.0
    i = 0
    for v in student_scores:
      if student_scores[i] >= average_score:
        above_avg_check = "{} {}".format(student_names[i], student_scores[i])
        above_avg.append(above_avg_check)
        print(above_avg_check)
      i += 1 

我不知道该怎么做。但我是一个计数器,student_scores的关键是我可以在while循环中使用它

2 个答案:

答案 0 :(得分:1)

您的0索引实际上是一个字符串时,您正在检查整数索引。

此代码在repl上为我编译,只是在尝试查找它们之前将索引值转换为字符串

student_scores = {'0':65.0, '1':54.7}
average_score = 66.0
i = 0
for v in student_scores:
  if student_scores[str(i)] >= average_score:
    above_avg_check = "{} {}".format(student_names[str(i)], student_scores[str(i)])
    above_avg.append(above_avg_check)
    print(above_avg_check)
  i += 1 

答案 1 :(得分:0)

您可以使用.items()方法并以更简单的方式获取分数。您可以根据学生及其在for循环中的分数来设置字符串的格式。

0: 65.0

这是你的输出:

df['day_charge'] = df['day_charge'].fillna(df['day_mins'] * 0.17)

当您遍历每个键及其相应的值时,这将为您提供所需的输出。