我以前使用course_rolls(records)
将数据放入以下词典:
{'EMT001': {2286560}, 'FMKT01': {2547053}, 'CSC001': {2955520, 2656583}, 'MGM001': {2928707, 2606735}, 'MTH002': {2786372}, 'FCOM03': {2762453, 2955520, 2564885, 2606735}, 'FMCM02': {2955520, 2928707, 2656583}, 'ENG001': {2571096, 2564885}, 'MKT001': {2571096, 2656583},'AWA001': {2286560}, 'ACC002': {2762453}, 'FMTH01': {2571096}, 'EMT003': {2762453, 2656583}, 'MEA001': {2564885, 2606735}, 'FPHY01': {2564885}, 'FBIO01': {2547053}, 'MTH001': {2286560}, 'ECO002': {2928707, 2786372}, 'FCHM01': {2286560}, 'FCOM01': {2786372}, 'ENG002': {2762453}}
记录变量包含:
[(('EMT001', 'Engineering Mathematics 1'), (2286560, 'Dayton', 'Archambault')), (('FMKT01', 'Marketing'), (2547053, 'Vladimir', 'Zemanek')), (('CSC001', 'Computer Programming'), (2656583, 'Ronny', 'Ridley')), (('MGM001', 'Fundamentals of Management'), (2928707, 'Susanne', 'Eastland')), (('MTH002', 'Mathematics 2'), (2786372, 'Danella', 'Crabe')), (('FCOM03', 'Introduction to Computing'), (2564885, 'Hpone', 'Ganadry')), (('FCOM03', 'Introduction to Computing'), (2762453, 'Phelia', 'Pottle')), (('FMCM02', 'Mass Communication II (Film Studies)'), (2656583, 'Ronny', 'Ridley')), (('ENG001', 'Foundations of Engineering'), (2564885, 'Hpone', 'Ganadry')), (('MKT001', 'Principles of Marketing'), (2571096, 'Shoshanna', 'Shupe')), (('AWA001', 'Engineering Writing Skills'), (2286560, 'Dayton', 'Archambault')), (('FCOM03', 'Introduction to Computing'), (2606735, 'Aaren', 'Enns')), (('ACC002', 'Financial Accounting'), (2762453, 'Phelia', 'Pottle')), (('FMTH01', 'Advanced Mathematics I'), (2571096, 'Shoshanna', 'Shupe')), (('FCOM03', 'Introduction to Computing'), (2955520, 'Bjorn', 'Kakou')), (('EMT003', 'Mathematical Modelling and Computation'), (2762453, 'Phelia', 'Pottle')), (('MEA001', 'Mixed English Programme'), (2564885, 'Hpone', 'Ganadry')), (('MGM001', 'Fundamentals of Management'), (2606735, 'Aaren', 'Enns')), (('MEA001', 'Mixed English Programme'), (2606735, 'Aaren', 'Enns')), (('FPHY01', 'Physics'), (2564885, 'Hpone', 'Ganadry')), (('FBIO01', 'Introduction to Biology'), (2547053, 'Vladimir', 'Zemanek')), (('ENG001', 'Foundations of Engineering'), (2571096, 'Shoshanna', 'Shupe')), (('MKT001', 'Principles of Marketing'), (2656583, 'Ronny', 'Ridley')), (('MTH001', 'Mathematics 1'), (2286560, 'Dayton', 'Archambault')), (('ECO002', 'Introduction to Macroeconomics'), (2786372, 'Danella', 'Crabe')), (('FCHM01', 'Chemistry'), (2286560, 'Dayton', 'Archambault')), (('FCOM01', 'Communication Skills II'), (2786372, 'Danella', 'Crabe')), (('FMCM02', 'Mass Communication II (Film Studies)'), (2928707, 'Susanne', 'Eastland')), (('CSC001', 'Computer Programming'), (2955520, 'Bjorn', 'Kakou')), (('ENG002', 'Engineering Mechanics and Materials'), (2762453, 'Phelia', 'Pottle')), (('EMT003', 'Mathematical Modelling and Computation'), (2656583, 'Ronny', 'Ridley')), (('FMCM02', 'Mass Communication II (Film Studies)'), (2955520, 'Bjorn', 'Kakou')), (('ECO002', 'Introduction to Macroeconomics'), (2928707, 'Susanne', 'Eastland'))]
程序输入为:碰撞CSC001
预期输出(命令:碰撞CSC001):
Clashes with CSC001:
In CSC001 and EMT003
2656583:
In CSC001 and FCOM03
2955520:
In CSC001 and FMCM02
2656583:
2955520:
In CSC001 and MKT001
2656583:
我得到的结果(命令:碰撞CSC001):
Clashes with CSC001:
In CSC001 and FCOM03
2955520:
In CSC001 and FMCM02
2955520:
In CSC001 and EMT003
2656583:
In CSC001 and FMCM02
2656583:
In CSC001 and MKT001
2656583:
程序代码:(需要修复的冲突函数)
def parse_course_code(commands, records):
if commands in course_rolls(records).keys():
print('Clashes with {}:'.format(commands))
return clashes(commands, records)
else:
print("Unknown course code")
def clashes(course_code, records):
unformatted_course_rolls = course_rolls(records)
for course, prior_student_number in sorted(unformatted_course_rolls.items()):
for prior_student_number_single in list(prior_student_number):
if course_code == course:
for code, student_number in sorted(unformatted_course_rolls.items()):
for num in list(student_number):
if prior_student_number_single == num and course != code:
print("In {} and {} ".format(course, code))
print(" {}: \n".format(num))
def main():
while True:
command = input('Command: ')
if command == 'quit':
print('Adios')
break
else:
parse_course_code(commands, records)
main()
您提供的代码很难理解。您应该尽量减少循环的使用—这会使代码更难阅读,执行时间也更长(如果您执行的是更大规模的操作)。看看我下面的解决方案,它按照您的预期打印结果,并且更易于阅读和理解
这是重构后的代码(注意,因为您没有提供
course_roll
函数,所以我更改了变量course_rolls_records
的course_roll(records)
,以便在本地运行它):相关问题 更多 >
编程相关推荐