Python进行数组的排序、倒序、截取
这里涉及到的场景,是对无序数组,需要进行有序排序的场景;
也可以是对数组内容,进行头部取舍的场景;
结合起来就可以是对数组排序后,进行数组的取舍
排序是对数组中进行双冒号 :: 操作,取舍是对数组进行单冒号 : 操作
根据上面的介绍,我们其实就能进行一些操作
如:取前N位元素、取后N位元素、取最大的N位元素、取最小的N位元素等等
代码和结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | arr = [ 1 , 9 , 5 , 73 , 1 , 4 , 56 , 2 , 6 , 10 ] # 数组倒序 print (arr[:: - 1 ]) # 输出:[10, 6, 2, 56, 4, 1, 73, 5, 9, 1] # 数组排序 print ( sorted (arr)) # 输出:[1, 1, 2, 4, 5, 6, 9, 10, 56, 73] # 取前3位元素 print (arr[: 3 ]) # 输出:[1, 9, 5] # 取除了后3位的元素 print (arr[: - 3 ]) # 输出:[1, 9, 5, 73, 1, 4, 56] # 取后3位的元素 print (arr[ - 3 :]) # 输出:[2, 6, 10] # 取除了前3位的元素 print (arr[ 3 :]) # 输出:[73, 1, 4, 56, 2, 6, 10] # 排序后、倒序、取前3位元素(取最大的3位元素) print ( sorted (arr)[:: - 1 ][: 3 ]) # 输出:[73, 56, 10] |
以上示例用法,其实搭配起来使用可以有很多好处,不过还是要根据大家的实际场景进行使用
python排序的几种方式
通过sort()可以快速实现数组的排序
1 2 3 | a = [ 2 , 3 , 1 ] a.sort() print (a) |
打印返回结果:
[1, 2, 3]
如果不知道有sort()函数或者一些特殊场景需要排序
如果解决呢,冒泡排序还是一个很好的算法
在计算性价比的贪心算法时也可以用到
1 2 3 4 5 6 7 | #Python学习交流群:531509025 a = [ 2 , 3 , 1 ] for i in range ( len (a)): for j in range (i + 1 ,( len (a))): if a[i]>a[j]: a[i],a[j] = a[j],a[i] print (a) |
打印返回结果:
[1, 2, 3]
数组list转成集合set时会默认从小到大排序
这里时候再取出来就可以了
1 2 3 4 5 6 | a = [ 2 , 3 , 1 ] a = set (a) b = [] for i in a: b.append(i) print (b) |
打印返回结果:
[1, 2, 3]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。