zoukankan      html  css  js  c++  java
  • python序列(列表,元组,字典)的常用排序

    列表

    正向排序

    sort()

    >>> list=[1,6,3,4,5,2]
    >>> list.sort()
    >>> list
    [1, 2, 3, 4, 5, 6]
    

      

    sorted()

    >>> sorted([1,6,3,4,5,2])
    [1, 2, 3, 4, 5, 6]
    

      

    sort与sorted区别

    sort是永久的,而sorted是临时的。

    逆向排序

    sort()

    >>> list=[1,6,3,4,5,2]
    >>> list.sort(reverse=True)
    >>> list
    [6, 5, 4, 3, 2, 1]
    

      

    sorted()

    >>> sorted([1,6,3,4,5,2],reverse=True)
    [6, 5, 4, 3, 2, 1]

    反转排序

    reverse()

    >>> list=[1,6,3,4,5,2]
    >>> list.reverse()
    >>> list
    [2, 5, 4, 3, 6, 1]

    切片方法

    >>> list=[1,6,3,4,5,2]
    >>> list[::-1]
    [2, 5, 4, 3, 6, 1]
    

      

    多层列表排序

    #对列表的第二个元素排序

    >>> list=[('b',6),('a',1),('c',3),('d',4)]
    >>> list.sort(key=lambda x:x[1])
    >>> list
    [('a', 1), ('c', 3), ('d', 4), ('b', 6)]

    #对列表的第二个元素排序后,再对第一个元素排序

    >>> list=[('b',1),('a',1),('c',3),('d',4)]
    >>> list.sort(key=lambda x:(x[1],x[0]))
    >>> list
    [('a', 1), ('b', 1), ('c', 3), ('d', 4)]
    

      

    元组

    元组排序可通过list函数将元组转换成列表,采用列表排序方法即可。

    元组列表间转换方法:

    list1=[1,2,3]
    tup1=tuple(list1)
    print(tup1)
    print(list(tup1))
    
    运行结果
    (1, 2, 3)
    [1, 2, 3]

    字典

    通过key排序

    d = {'a': 2, 'A': 1, 'c': 3, 'b': 2}
    sorted_key_list = sorted(d)					#正向排序
    #sorted_key_list = sorted(d,reverse=True)			#逆向排序
    print(sorted_key_list)
    sorted_dict = list(map(lambda x:{x:d[x]}, sorted_key_list))
    print(sorted_dict)
    
    运行结果
    ['A', 'a', 'b', 'c']						# 根据ascii码大小排序
    [{'A': 1}, {'a': 2}, {'b': 2}, {'c': 3}]
    

    通过value排序 

    d = {'a': 2, 'A': 1, 'c': 3, 'b': 2}
    sorted_key_list = sorted(d, key=lambda x:d[x])				#正向排序
    # sorted_key_list = sorted(d, key=lambda x:d[x], reverse=True)   	#逆向排序
    print(sorted_key_list)
    
    sorted_dict = list(map(lambda x:{x:d[x]}, sorted_key_list))
    print(sorted_dict)
    
    运行结果:
    ['A', 'a', 'b', 'c']
    [{'A': 1}, {'a': 2}, {'b': 2}, {'c': 3}]
    

      

    PS:

    Map函数在python2中返回的是一个列表,而在python3中返回的是一个迭代器(地址)。故想以列表输出,需要在map前添加list,转换下格式。

  • 相关阅读:
    android Textview动态设置大小
    小米1plus MIUI RadioButton的问题
    快读
    高精集合
    清北学堂part2
    清北学堂part1
    OTZ%%%子谦。大佬
    筛质数大优化
    回文日期
    高精度加法
  • 原文地址:https://www.cnblogs.com/lilip/p/9249389.html
Copyright © 2011-2022 走看看