Python 如何提示用户为列表中的每个值指定新名称?

Python 如何提示用户为列表中的每个值指定新名称?,python,python-3.x,input,Python,Python 3.x,Input,因此,我需要命名从第一个用户输入创建的列表中的每个项目。 我的第一行代码如下: num_assessment = int(input('How many assessments per student?')) 现在我需要用户命名列表中的每个项目;例如: How many assessments per student?:2 What type of assessment was assessment 1? Essay How many marks is the Essay worth? 30

因此,我需要命名从第一个用户输入创建的列表中的每个项目。 我的第一行代码如下:

num_assessment = int(input('How many assessments per student?'))
现在我需要用户命名列表中的每个项目;例如:

How many assessments per student?:2
What type of assessment was assessment 1? Essay
How many marks is the Essay worth? 30
What type of assessment was assessment 2 ? Test
How many marks is the Test worth? 70

我可以使用什么函数来执行此操作?

带有
for
循环的字典是构建数据结构的一种方法。下面是一个例子

num_assessment = int(input('How many assesments per student?\n'))

data = {}

for i in range(1, num_assessment+1):
    data_type = input('What type of assessment was assessment {0}?\n'.format(i))
    data_marks = int(input('How many marks is the {0} worth?\n'.format(data_type)))
    data[i] = {'type': data_type, 'marks': data_marks}
示例

How many assesments per student?
2
What type of assessment was assessment 1?
essay
How many marks is the essay worth?
30
What type of assessment was assessment 2?
assignment
How many marks is the assignment worth?
50
结果

print(data)
{1: {'marks': 30, 'type': 'essay'}, 2: {'marks': 50, 'type': 'assignment'}}
你可以试试这个:

n = int(input("How many assesments per student?  "))
dct_values = {}
for i in range(1,n+1):
   asesmnt = input("What type of assessment was assessment "+str(i)+"?  
                   ")
   marks = int(input("How many marks is the "+asesmnt+" worth?  "))
   dct_values[i] = [{asesmnt:marks}]
print(dct_values)
它将所有值存储在dict中,O/p将如下所示:

{1: [{'Essay': 30}], 2: [{'Test': 70}]}