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资料
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值