Python中sort, sorted, itemgetter 的排序


"""
    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资料
发布了73 篇原创文章 · 获赞 14 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42327755/article/details/91457446