在python中,如何根据特殊条件将列表中的特定值转换为不同的值

时间:2013-03-12 00:22:33

标签: list input replace

我正在尝试编写一个程序,将类中收到的百分比转换为GPA格式,然后最终找到整体GPA。我希望它首先提示用户输入类的数量,然后输入百分比。我遇到一些麻烦,让程序将百分比转换为GPA格式(90或更高等于4,80到89等于3,等等...)。这就是我到目前为止所拥有的

class_number = int(raw_input("How many classes do you have? "))
total_grade = list((raw_input("Enter Percentage: ")) for i in range(class_number))

a = total_grade

def alter(x):
   if x >= 90:
    return 4
   elif x >= 80:
    return 3
a = map(alter,a)

print a

问题是,无论原始百分比如何,这似乎只输出4s。

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

那是因为x实际上是一个字符串。我认为字符串总是大于数字。您需要将total_grade中的每个项目转换为int:

total_grade = list(int(raw_input("Enter Percentage: ")) for i in range(class_number))

此外,您可以使用列表理解:

total_grade = [int(raw_input("Enter Percentage: ")) for i in range(class_number)]