"""
ret = sorted(参数1, 参数2, 参数3)
参数1: 任意的可迭代对象,
参数2: key, 可省略, 默认ASCII码排序
参数3: reverse 是否反转,默认为: reverse = False
ret : 将结果以新列表形式返回, 并不会对参数1产生影响
"""
fruit = ["apple1", "pear", "grape", "watermelon", "apple2", "banana"]
ret1 = sorted(fruit) # 排序, 如果长度相同, 会根据原有的顺序进行排序 apple1/apple2/banana
print(ret1)
print(fruit) # 并不会对原列表造成影响
ret2 = sorted(fruit, reverse=True) # 反转
print(ret2)
ret3 = sorted(fruit, key=len) # 按词长度排序
print(ret3)
ret4 = sorted(fruit, key=len, reverse=True) # 按词的长度反排序
print(ret4)
num_list = [1, '12', 7, '8', 10, '5']
ret_num_list_int = sorted(num_list, key=int) # 按int排序
ret_num_list_str = sorted(num_list, key=str) # 按str排序
print(ret_num_list_int, ret_num_list_str)
"""
ret = 参数1.sort(参数2, 参数3)
参数1:可迭代对象
参数2:key
参数3: reverse
ret: None 因为sort()改变的是参数1本身
"""
fruit2 = ["apple1", "pear", "grape", "watermelon", "apple2", "banana"]
fruit2.sort(key=len, reverse=True)
print(fruit2)
"""
利用步长对 有序迭代对象 倒序
"""
fruit3 = ["apple1", "pear", "grape", "watermelon", "apple2", "banana"]
ret = fruit3[::-1]
print(ret)
"""
itemgetter 多条件排序
"""
from operator import itemgetter
demo_b = [("a", 21, 4), ("x", 12, 0), ("g", 12, 3), ("d", 0, 10), ("l", 12, 3)]
# 需求: 先按第2个元素排序, 再按第1个元素排序
ret3 = sorted(demo_b, key=itemgetter(1, 0))
print(ret3)
获取更多itemgetter资料