sorted()和operator.itemgetter()小测试
自己学习的小测试,没有讲解,只有代码测试与运行结果
students = [('aohn', 'A', 2), ('cane', 'B', 12), ('bave', 'C', 10)]
#sorted(students, key=lambda student : student[0])
#[('aohn', 'A', 15), ('dave', 'c', 10), ('jane', 'B', 12)]根据元素的第一个即元组的第一个值排序
#sorted(students, key=lambda student : student[1])
#[('aohn', 'A', 15), ('jane', 'B', 12), ('dave', 'c', 10)]根据元素的第二个值排序,即根据字符“A""B""C""等排序
#sorted(students, key=lambda student : student[2])
#[('dave', 'c', 10), ('jane', 'B', 12), ('aohn', 'A', 15)]根据数字排序
val=sorted(students, key=operator.itemgetter(1),reverse=True)
print(val) # [('dave', 'C', 10), ('jane', 'B', 12), ('aohn', 'A', 15)], 按字符
val=sorted(students, key=operator.itemgetter(2),reverse=True) #reverse=true是降序
print(val) #[('jane', 'B', 12), ('dave', 'C', 10), ('mohn', 'A', 2)] 按数组
val=sorted(students, key=operator.itemgetter(0,2),reverse=True)
print(val) #[('cane', 'B', 12), ('bave', 'C', 10), ('aohn', 'A', 2)]先按单词,再按数字将序排列,字符按ascii值排的
#classmate=operator.itemgetter(1)
#('jane', 'B', 12)取第二个值
#classmate=operator.itemgetter(1,1)
#(('jane', 'B', 12), ('jane', 'B', 12)) 取两次
#classmate=operator.itemgetter(0,1)
#(('aohn', 'A', 15), ('jane', 'B', 12))返回的是第一个和第二个元素
students = [('aohn', 'A', 2), ('cane', 'B', 12), ('bave', 'C', 10)]
#sorted(students, key=lambda student : student[0])
#[('aohn', 'A', 15), ('dave', 'c', 10), ('jane', 'B', 12)]根据元素的第一个即元组的第一个值排序
#sorted(students, key=lambda student : student[1])
#[('aohn', 'A', 15), ('jane', 'B', 12), ('dave', 'c', 10)]根据元素的第二个值排序,即根据字符“A""B""C""等排序
#sorted(students, key=lambda student : student[2])
#[('dave', 'c', 10), ('jane', 'B', 12), ('aohn', 'A', 15)]根据数字排序
val=sorted(students, key=operator.itemgetter(1),reverse=True)
print(val) # [('dave', 'C', 10), ('jane', 'B', 12), ('aohn', 'A', 15)], 按字符
val=sorted(students, key=operator.itemgetter(2),reverse=True) #reverse=true是降序
print(val) #[('jane', 'B', 12), ('dave', 'C', 10), ('mohn', 'A', 2)] 按数组
val=sorted(students, key=operator.itemgetter(0,2),reverse=True)
print(val) #[('cane', 'B', 12), ('bave', 'C', 10), ('aohn', 'A', 2)]先按单词,再按数字将序排列,字符按ascii值排的
#classmate=operator.itemgetter(1)
#('jane', 'B', 12)取第二个值
#classmate=operator.itemgetter(1,1)
#(('jane', 'B', 12), ('jane', 'B', 12)) 取两次
#classmate=operator.itemgetter(0,1)
#(('aohn', 'A', 15), ('jane', 'B', 12))返回的是第一个和第二个元素
#classmate(students)