题:您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中name是字符串,age和height是数字。 元组由控制台输入。 排序标准是:
1:根据名称排序;
2:然后根据年龄排序;
3:然后按分数排序。
优先级是name> age>得分。
如果给出以下元组作为程序的输入:
Tom,19,80
John,20,90
Jony,17,91
Jony,17,93
Json,21,85
然后,程序的输出应该是:
[('John','20','90'),('Jony','17','91'),('Jony','17','93'),('Json','21 ','85'),('Tom','19','80')]
from operator import itemgetter, attrgetter
l=[]
print("请输入")
while True :
x=input()
if not x :
break
l.append(tuple(x.split(",")))
print(sorted(l,key=itemgetter(1,0,2)))
itemgetter的定向获取功能,与sorted的排序功能相结合就可以获得优先级排序。
题二:使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。
def putNumbers(n):
i = 0
while i<n:
j=i
i=i+1
if j%2==0:
yield j
for i in putNumbers(20):
print (i)