python常用排序函数学习整理 - 1)sorted(arrays) 2)arrays.sort()

python常用排序函数学习整理


前言

  在LC上做题的过程中难免要用到排序的函数,常用的排序函数主要有两个:(1)一个是在直接在所需排序的数组arrays上进行升序,即arrays.sort();(2)另一个则是调用sorted()函数对arrays进行升序,不过需要一个变量存放排序后的结果,即arrays_sorted = sorted(arrays).
  下面将针对刷题过程中遇到的两三道题的排序部分进行整理,主要是灵活运用的问题,本篇文章会在后续过程中不断完善。


提示:以下是本篇文章正文内容,下面案例可供参考

一、实例说明

(1)一维数组 nums = [1,5,1,1,6,4]

  参考LC 324 摆动排序 II

# 升序
    nums = [1,5,1,1,6,4]
    print('nums:',nums)
    nums_sorted_increase = sorted(nums)
    nums.sort()
    print('nums:',nums)
    print('nums_sorted_increase:',nums_sorted_increase)
    
    '''
    输出
    nums: [1, 5, 1, 1, 6, 4]
    nums: [1, 1, 1, 4, 5, 6]
    nums_sorted_increase: [1, 1, 1, 4, 5, 6]
    '''
# 降序 活用 reverse
    nums = [1, 5, 1, 1, 6, 4]
    print('nums:', nums)
    nums_sorted_increase = sorted(nums,reverse=True)
    nums.sort(reverse=True)
    print('nums:', nums)
    print('nums_sorted_increase:', nums_sorted_increase)
    '''
    输出
    nums: [1, 5, 1, 1, 6, 4]
    nums: [6, 5, 4, 1, 1, 1]
    nums_sorted_increase: [6, 5, 4, 1, 1, 1]
    '''

(2)二维数组 nums = [[1,3],[1,4],[2,5],[3,5]]

  参考LC 757 设置交集大小至少为2

# 活动 关键词 key 
# 第一列升序 第二列降序
    nums = [[1,3],[1,4],[2,5],[3,5]]
    print('nums:',nums)
    nums_sorted = sorted(nums,key=lambda x:(x[0], -x[1]))
    nums.sort(key=lambda x:(x[0], -x[1]))
    print('nums:',nums)
    print('nums_sorted:',nums_sorted)
    '''
    输出
    nums: [[1, 3], [1, 4], [2, 5], [3, 5]]
    nums: [[1, 4], [1, 3], [2, 5], [3, 5]]
    nums_sorted: [[1, 4], [1, 3], [2, 5], [3, 5]]
    '''

(3)字符串数组 words = [“a”, “banana”, “app”, “appl”, “ap”, “apply”, “apple”]

  参考LC 720 词典中最长的单词

	words = ["a", "banana", "app", "appl", "ap", "apply", "apple"]
    print('words:',words)
    # 1)按照字符串长度降序;2)按照字符串首字母ASCII码升序
    words_sorted = sorted(words,key=lambda x:(-len(x),x))
    # 与word_sorted逆序排列
    words.sort(key=lambda x:(-len(x),x),reverse=True)
    print('words:',words)
    print('words_sorted:',words_sorted)
    '''
    输出
    words: ['a', 'banana', 'app', 'appl', 'ap', 'apply', 'apple']
    words: ['a', 'ap', 'app', 'appl', 'apply', 'apple', 'banana']
    words_sorted: ['banana', 'apple', 'apply', 'appl', 'app', 'ap', 'a']
    '''

二、补充说明

(1)相信细心的朋友已经发现,直接在变量前面加负号也可以起到reverser的作用,即sorted(nums,reverse=True) 可以写成sorted(-nums),至于理解上就是数学那套了;
(2)一维数组比较容易理解和使用,对于二维数组、字符串数组以及跟更加复杂的数组,需要灵活地使用关键词key,通过如:key=lambda x:x[0] 需要准确地定位所排序的基准数组。

三、总结

  本篇blog主要是对刷题过程中的两个常用的排序函数进行总结,下次就不能在犯迷糊了!后续会根据刷题的情况继续更新本篇的内容,我看到MATLAB的内容有人点了收藏,下面也会针对MATLAB中遇到的一些编程技巧进行汇总。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值