# sorted对所有的可迭代序列都有效
print('========list======')
# sort:对列表进行排序(列表中全是数值)
li = [11, 224, 12, 432, 4, 35, 3, 6, 32, 34, 552, 233]
# 默认从小到大进行排序(升序)
# 不会变化原列表
print(sorted(li))
print(sorted(li,reverse=True))#倒序
print(li)
#会变化原列表
li.sort()
print(li)
print('=======set=======')
s8={11,23,4,5,6,1}
print(s8)#正常情况下没有顺序,随机排序
print(sorted(s8))#list和set类型都可以用sorted
print('=======dict=======')
dict1={11: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}
#
print(sorted(dict1))
print(dict1)
print('======通过key指定的函数来忽略字符串的大小写========')
print(sorted("This is a test string from Andrew".split(), key=str.lower))
print('======通过key指定1========')
student_tuplesA = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
print(sorted(student_tuplesA,key=lambda x:x[2]))
print('=======通过key指定2=======')
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
print(sorted(student_objects, key=lambda x: x.age) )
print('=======复杂排序======')
# 先以grade降序排列,然后再以age升序排列。
s = sorted(student_objects, key=lambda x:x.grade)
print(sorted(s, key=lambda x:x.age) )