pythonにおける高度な関数応用-sortソートアルゴリズム

1818 ワード

# -*- coding: UTF-8 -*-
__author__ = '   '

#     :
#                。
#               ,               。
#      ,        ,           dict ?                ,  ,               。
#     ,      x y,    x < y,   -1,    x == y,   0,    x > y,   1,
#   ,                ,            

# Python   sorted()      list    :
print(sorted([34, 5, 7, 2, 8, 13]))

print('-----------------------------------------------------------------------------------')

# sorted()          ,                     。
#   ,       ,          reversed_self  
#           reversed_self,         
def reversed_self(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0
res = sorted([34, 5, 7, 2, 8, 13], reversed_self)
print(res)

print('-----------------------------------------------------------------------------------')

#      ,      ,   ASCII      ,  'Z' < 'a',  ,    Z       a   。
#   ,             ,       。       ,           ,                     
# Python upper()                   。
def ignore_case(x1, x2):
    u1 = x1.upper()
    u2 = x2.upper()
    if u1 < u2:
        return -1
    if u1 > u2:
        return 1
    return 0
#              ,               (       ),   
res1 = sorted(['bob', 'about', 'Zoo', 'Credit'], ignore_case)
print(res1)

実行結果は次のとおりです.
G:\Anaconda2\python.exe G:/location/sparkPy/pythonDemo/using_sorted.py
[2, 5, 7, 8, 13, 34]
-----------------------------------------------------------------------------------
[34, 13, 8, 7, 5, 2]
-----------------------------------------------------------------------------------
['about', 'bob', 'Credit', 'Zoo']

Process finished with exit code 0