Issue
no_sub = int(input("Enter Number Of Subjects : "))`
no_mark = int(input("Enter how many student's marks do you want to add : "))
for i in range (0,no_sub):
sub_name = input("Enter Subject Names : ")
for j in range (0,no_mark):
stud_marks = input("Enter student's Marks : ")
marks[sub_name] = stud_marks
print(marks)
In this program the expected output is {'Phy':[65,66,70,45],'Eng':[90,96,89,76],'Chem':[67,45,56,70]}
but when I try to merge these dictionaries using user input I am getting this output
Enter Number Of Subjects : 3
Enter how many student's marks do you want to add : 4
Enter Subject Names : Phy
Enter student's Marks : 46
Enter student's Marks : 45
Enter student's Marks : 27
Enter student's Marks : 67
Enter Subject Names : Eng
Enter student's Marks : 44
Enter student's Marks : 23
Enter student's Marks : 75
Enter student's Marks : 81
Enter Subject Names : Maths
Enter student's Marks : 68
Enter student's Marks : 35
Enter student's Marks : 36
Enter student's Marks : 86
{'Phy': '67', 'Eng': '81', 'Maths': '86'}
please help , I'm trying to fix this sice hours
Solution
Instead of marks[sub_name] = stud_marks
use list and append input there:
no_sub = int(input("Enter Number Of Subjects : "))
no_mark = int(input("Enter how many student's marks do you want to add : "))
marks = {}
for i in range(no_sub):
sub_name = input("Enter Subject Names : ")
for j in range(no_mark):
stud_marks = input("Enter student's Marks : ")
marks.setdefault(sub_name, []).append(int(stud_marks))
print(marks)
Prints:
Enter Number Of Subjects : 2
Enter how many student's marks do you want to add : 2
Enter Subject Names : A
Enter student's Marks : 1
Enter student's Marks : 2
Enter Subject Names : B
Enter student's Marks : 3
Enter student's Marks : 4
{'A': [1, 2], 'B': [3, 4]}
Answered By - Andrej Kesely Answer Checked By - Cary Denson (PHPFixing Admin)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.