编写此程序的目的是使用逗号作为分隔符来收集姓名、年龄和分数。键入值后,程序将重新排列列表,分别优先考虑姓名、年龄和分数。然而,结果并不像预期的那样。
from operator import itemgetter, attrgetter
store=[]
store1=[]
while True:
block = input("Enter Name, Age, Score: ")
if block:
store.append(block)
else:
break
store1=tuple(store)
print(sorted(store1, key=itemgetter(0,1,2)))
结果:
Enter Name, Age, Score: John,50,100
Enter Name, Age, Score: Jan,40,50
Enter Name, Age, Score: John,38,10
Enter Name, Age, Score:
['Jan,40,50', 'John,50,100', 'John,38,10']
如上所示,重新排列名称没有问题。实际上,问题在于排序时的第2个和第3个变量。功能 itemgetter 似乎不起作用。