精华内容
下载资源
问答
  • Python数组排序

    2020-03-16 14:47:55
    适用于Python数组排序的方法有很多,这里只介绍一种目前比较推荐的排序方法,即 list.sort(key=None,reverse=False)。 函数的两个参数: key: 选定比较的元素,可以设置多个参数,依次比较,一般使用lambda表达式来...

    适用于Python数组排序的方法有很多,这里只介绍一种目前比较推荐的排序方法,即 list.sort(key=None,reverse=False)

    函数的两个参数:

    1. key: 选定比较的元素,可以设置多个参数,依次比较,一般使用lambda表达式来简化排序规则;
    2. reverse:升序还是降序,默认为升序;
    list.sort(key=lambda ele:len(ele),reverse=True) 
    # 按元素长度顺序降序排列
    
    list.sort(key = lambda x: (x[0], int(x[1]))) 
    # 首要按x[0],若相等再按x[1]的值进行排序
    

    值得注意的是,当进行如第二个例子那样的多级排序时,sort并不支持分别指定升序或是降序。因此在那种情况使用sort,只能先按次要元素排序,再按主要元素排序,即排序两次。

    此外函数 sorted() 的用法也是类似的,但适用于更多的可迭代对象,即不限于数组。

    参考资料

    展开全文
  • python 数组排序

    2019-03-05 10:37:23
    单个数组排序很简单,直接用sort就能完成,如一下ipython代码: In [39]: array = [4, 2, 5, 1, 3] In [40]: array.sort() In [41]: array Out[41]: [1, 2, 3, 4, 5] 多维数组排序如直接用sort讲会按第一...

    单个数组的排序很简单,直接用sort就能完成,如一下ipython代码:

    In [39]: array = [4, 2, 5, 1, 3]

    In [40]: array.sort()

    In [41]: array

    Out[41]: [1, 2, 3, 4, 5]


    多维数组的排序如直接用sort讲会按第一维的数据进行排序,如:

    In [42]: array = [ ['b', 4], ['e', 2], ['a', 5], ['d', 1], ['c', 3] ]

    In [43]: array.sort()

    In [44]: array

    Out[44]: [ ['a', 5], ['b', 4], ['c', 3], ['d', 1], ['e', 2] ]


    如何按第二维的数据进行排序呢,我们可以用sort函数中的key形参,代码接上,如:

    In [45]: array.sort(key=lambda x:x[1])#lambda x:x[1]返回list的第二个数据

    In [46]: array

    Out[46]: [ ['d', 1], ['e', 2], ['c', 3], ['b', 4], ['a', 5] ]

    也可以用一个函数实现,比较直接,如:


    In [55]: def sort(a):

       ....:     for k in xrange(len(a)):

       ....:         (a[k][0], a[k][1]) = (a[k][1], a[k][0])

       ....:     a.sort()

       ....:     for k in xrange(len(a)):

       ....:         (a[k][0], a[k][1]) = (a[k][1], a[k][0])

       ....:         

    In [56]: array = [ ['b', 4], ['e', 2], ['a', 5], ['d', 1], ['c', 3] ]

    In [57]: sort(array)

    In [58]: array

    Out[58]: [ ['d', 1], ['e', 2], ['c', 3], ['b', 4], ['a', 5] ]
    --------------------- 

    >>> arr=[ [1 ,3 ] , [2,3] , [3,1]]
    
    >>> arr.sort()   缺省根据第一列排序
    
    >>> arr
    
    [[1, 3], [2, 3], [3, 1]]
    
    >>> arr.sort(key=lambda x:x[1])   #对第二列排序
    
    >>> arr
    
    [[3, 1], [1, 3], [2, 3]]
    
    >>> arr.sort(key=lambda x:x[1],reverse=True)  #逆序
    
    >>> arr
    
    [[1, 3], [2, 3], [3, 1]]
    展开全文
  • python数组排序

    千次阅读 2015-11-03 17:47:31
    简单排序: arr=[3,4,1] temp = sorted(arr) print arr print temp 输出: [3, 4, 1] ...arr2 = arr.sort() print arr print arr2 输出: [1, 3, 4] None 正序排序: arr = [{'a': 3}, {'a': 4}

    简单排序:

    arr=[3,4,1]
    temp = sorted(arr)
    print arr
    print temp 
    输出:

    [3, 4, 1]
    [1, 3, 4]

    简单排序示例2:

    arr=[3,4,1]
    arr2 = arr.sort() 
    print arr
    print arr2 
    输出:

    [1, 3, 4]
    None

    正序排序:

    arr = [{'a': 3}, {'a': 4}, {'a': 1}]
    sort=sorted(arr,key=lambda e:e.get('a'))
    print sort
    输出:

    [{'a': 1}, {'a': 3}, {'a': 4}]

    倒序排序:

    只需要设置reverse=True即可

    arr = [{'a': 3}, {'a': 4}, {'a': 1}]
    sort=sorted(arr,key=lambda e:e.get('a'),reverse=True)
    print sort
    输出:

    [{'a': 4}, {'a': 3}, {'a': 1}]




    展开全文
  • 数组排序 sort() 和 sorted() 相对于sort()来说,sorted的应用更加广泛 sorted() 作用于任意可迭代的对象 而 sort() 一般作用于列表 sort(): x = [4, 6, 2, 1, 7, 9] x.sort() print(x) 打印结果为 [1, 2, 4, ...

    数组的排序

    sort() 和 sorted()
    相对于sort()来说,sorted的应用更加广泛
    sorted() 作用于任意可迭代的对象
    而 sort() 一般作用于列表

    sort():

    x = [4, 6, 2, 1, 7, 9]
    x.sort()
    print(x)
    
    打印结果为 [1, 2, 4, 6, 7, 9] 从小到大排序
    

    sort()提供了两个可选参数,分别是 key和reverse

    • key在使用时必须提供一个排序过程总调用的函数:
     - x = ["WW","WWW","W","WW","WWWW","WW","W","WWWWW"]
    x.sort(key=len)
    print(x)
    打印结果为:['W', 'W', 'WW', 'WW', 'WW', 'WWW', 'WWWW', 'WWWWW'](以字符串长度进行排序)
    
    • reverse实现降序排序,反转功能:
     x = ["WW","WWW","W","WW","WWWW","WW","W","WWWWW"]
    x.sort(reverse=True)
    print(x)
    打印结果为:['WWWWW', 'WWWW', 'WWW', 'WW', 'WW', 'WW', 'W', 'W']
    

    sorted():

    sorted()可以对列表、元组、字典、集合、字符串、range对象以及其他可迭代对象进行排序,返回排序后的列表,支持使用key参数指定排序规则,支持reverse参数指定升序或者降序。

    x = (4, 6, 2, 1, 7, 9)
    print(type(x)) #打印为元组<class 'tuple'>
    print(sorted(x))
    打印结果:<class 'tuple'>
    		[1, 2, 4, 6, 7, 9]
    

    如果这个例子中针对元组使用 sort() 方法会抛出 AttributeError,而使用 sorted() 函数则 没有这个问题。

    当排序对象为列表的时候两者适合的场景不同
    sorted() 函数会返回一个排序后的列表,原有列表保持不变
    而 sort() 函数会直接修改原有列表

    例子: 输入数组、最大的与第一个元素交换、最小的与最后一个元素交换、输出数组。

    l = input('请输入一个数组:')
    z = l.strip('[').strip(']').split(',')
    x = []
    for i in z:
        x.append(int(i))
    k = (max(x))
    x.remove(k)
    h = (min(x))
    x.remove(h)
    x.insert(0,k)
    x.append(h)
    print(x)
    
                      ——————————————————感谢观看——————————————————————
    
    展开全文
  • /usr/bin/python # -*- coding: UTF-8 -*- def sort( Arr , newArr = [] ): if len(Arr) > 0 : lenNum = len(newArr); if lenNum : #Arr[0] 当前值 比数组的第一位还小 if newArr[0] ...
  • python字典数组排序实现

    千次阅读 2012-04-21 19:20:56
    python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。...eg数组排序:  L=[5,2,3,1,4]. sort: L.sort() sorted(...)  sorted(iterable, cmp=None, key=None,
  • python想用matlab的sort函数,既能输出索引,又能输出从大到小的排序 查了很多资料,发现np.sort没办法设置从大到小排序,解决办法: np.sort(val1, axis=0)[::-1] # axis=0按列排序,[::-1]使结果上下翻转 相应...
  • 返回一个数组,内容是在将源输入数组变为有序(升序)数组的过程中需要进行交换操作的最小的数组。 样例输入: [1, 2, 4, 7, 10, 11, 7, 12, 6, 7, 16, 18, 19] 样例输出: [3,9] 假设有一个数是无序的,那么至少有...
  • Python3】数组排序

    万次阅读 2018-05-15 19:56:49
    1、数组排序 a = [3,1,4,6] a.sort() print(a) 执行结果: 2、多维数组排 a = [['5.1.5.40580', 29], ['5.0.8.14000', 11], ['5.0.8.14999', 59], ['5.1.4.37882', 4]] a.sort(key=lambda x:x[1],reverse=...
  • 对numpy中ndarray对象sort方法的axis的理解
  • Python学习之路】数组排序

    万次阅读 2019-12-15 20:54:29
    数组排序 %pylab Using matplotlib backend: Qt4Agg Populating the interactive namespace from numpy and matplotlib sort 函数 先看这个例子: names = array(['bob', 'sue', 'jan', 'ad']) weights = array(...
  • 数组productlist中存储的是自定义类Product,Product有一个方法是返回商品的价格,于是对productlist按照Product的价格从低到高进行排序,仅需要如此简单的一行代码即可实现。 Python真的是一门简洁而强大的语言,...
  • 比如sort函数可以一键排序 那么对于两个数组,让其中一个进行升序排列,如何让另一个数组保持和原来数组的对应关系也进行排列呢。比如如下两个数组: import numpy as np arr1 = ['XiaoMing', 'XiaoHong', '...
  • python 排序数组

    2019-11-19 15:30:57
    1)代码 ... arr.sort(None, key=lambda v: v%10) arr = [401, 403, 402, 401, 405, 403] print(arr) sortArr(arr) print(arr) ``` [401, 403, 402, 401, 405, 403] [401, 401, 402, 403, 403, 405...
  • python数组求最大值最小值

    千次阅读 2020-02-25 16:44:19
    刚刚面试被问到不用max函数...我们可以直接排序,取最后一个 a.sort(reverse=False) print(a[-1]) 第二种: 我们定义第一个元素 然后for循环比较 max_num = a[0] for i in range(len(a)): if a[i] > max_num: ...
  • 1119: 一维数组排序python 题目描述: 对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下: void sort(int a[], int n); 数组元素的输出调用PrintArr()。 输入 第一行输入一...
  • python json数组对象排序

    千次阅读 2018-07-17 17:14:17
    json数组对象用sort排序 比如:按时间排序 &gt;&gt;&gt; arr = [{"time": "2018-07-17 08:57:43"}, {"time": "2018-07-17 08:57:41"}, {"time": ...
  • 数组排序 java: public class Choose2 { public static void main(String[] args) { // TODO Auto-generated method stub int[] a={1,2,5,3}; sort(a); //循环打印 for(int i=0;i<a.length;i++) { System...
  • python[对多维数组排序]

    千次阅读 2018-04-10 15:45:09
    有四个点,每一个点有x,y坐标,如何根据x坐标或者y坐标进行排序?以下是解决办法: if __name__ == '__main__': alist = [[0, 10], [5, 6], [2, 7], [3, 8], [1, 12]] alist.sort() print('按照X排序:{}'.format(a...
  • a=int(input()) b=input().split() b.sort() d=’ '.join(b) print(d)
  • Python二维数组sort)

    千次阅读 2018-08-07 12:57:06
    题目如下,二维数组包含name和grade,然后按照成绩和字母表进行排序。   n=int(input()) slist=[[input(),float(input())]for _ in range(n)] def takeSecond(elem): return elem[1],elem[0] slist.sort(key=...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 842
精华内容 336
关键字:

python数组排序sort

python 订阅