gpt4 book ai didi

python - 用另一个列表中的项目替换列表中的项目

转载 作者:行者123 更新时间:2023-12-01 08:10:10 24 4
gpt4 key购买 nike

我正在尝试为用户的加权 GPA 创建一个计算器。我使用 PyautoGUI 询问用户他们的成绩和他们正在参加的类(class)类型。但我希望能够获取用户输入并将其重新映射为不同的值。

class GPA():
grades = []
classtypes = []

your_format = confirm(text='Choose your grade format: ', title='',
buttons=['LETTERS', 'PERCENTAGE', 'QUIT'])

classnum = int(prompt("Enter the number of classes you have: "))

for i in range(classnum):
grade = prompt(text='Enter your grade for the course
:'.format(name)).lower()
classtype = prompt(text='Enter the type of Course (Ex. Regular, AP, Honors): ').lower()

classtypes.append(classtype)
grades.append(grade)

def __init__(self):
self.gradeMap = {'a+': 4.0, 'a': 4.0, 'a-': 3.7, 'b+': 3.3, 'b': 3.0,'b-': 2.7,
'c+': 2.3, 'c': 2.0, 'c-': 1.7, 'd+': 1.3, 'd': 1.0, 'f': 0.0}
self.weightMap = {'advanced placement': 1.0, 'ap': 1.0, 'honors': 0.5,'regular': 0.0}

最佳答案

根据您定义的 gradeMap 字典,您可以使用所谓的 list comprehension 做一些事情。 .

我所说的使用 Python 解释器完成的示例:

>>> grades = ['a', 'c-', 'c']
>>> gradeMap = {'a+': 4.0, 'a': 4.0, 'a-': 3.7, 'b+': 3.3, 'b': 3.0,'b-': 2.7,
... 'c+': 2.3, 'c': 2.0, 'c-': 1.7, 'd+': 1.3, 'd': 1.0, 'f': 0.0}
>>> [gradeMap[grade] for grade in grades] #here's the list comprehension
[4.0, 1.7, 2.0]

我认为这种方法的缺点可能是确保用户只给您在 gradeMap 中定义的成绩,否则会给您一个 KeyError .

另一种选择是使用 mapmap 略有不同,因为它需要一个函数和一个输入列表,然后将该函数应用于输入列表。

一个非常简单的函数示例,仅适用于几个等级:

>>> def convert_grade_to_points(grade):
... if grade == 'a':
... return 4.0
... elif grade == 'b':
... return 3.0
... else:
... return 0
...
>>> grades = ['a', 'b', 'b']
>>> map(convert_grade_to_points, grades)
[4.0, 3.0, 3.0]

这也存在我之前提到的缺点,即您定义的函数必须处理用户输入无效成绩的情况。

关于python - 用另一个列表中的项目替换列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55309879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com