Pythonのsort()メソッドとsorted()関数の違い

1217 ワード

クラスの中はメソッドと呼ばれ、クラスの外は関数と呼ばれます.
  • sort()はPythonリストに組み込まれたソート方法でありlist.sort()メソッドのソート時に元のリストを直接変更し、Noneを返します.メソッドsort()リストを永続的にソートする
  • sorted()はPythonに内蔵されたソート関数で、反復器から順序付けされた新しいリストが返され、受信する必要があり、直接印刷することもできます.関数sorted()リストを一時的にソートする
  • sort()はリストの1つの方法にすぎず、リストにのみ適用され、sorted()関数はすべての反復器を受け入れ、秩序あるコピーを返し、タイプは常にリストである.sort()よりもsorted()の使用範囲は広いですが、元のリストを保持する必要がなければsortの方が効果的です.
    =========sort()     ,     ============== 
    li=['sfdf','dfs','fdsw','tre','yhgfth']
    li.sort()
    print(li)
    ['dfs', 'fdsw', 'sfdf', 'tre', 'yhgfth']
    
    ==========sorted()    ,      ===============
    li=['sfdf','dfs','fdsw','tre','yhgfth']
    print(sorted(li))
    print(li)
    ['dfs', 'fdsw', 'sfdf', 'tre', 'yhgfth']
    ['sfdf', 'dfs', 'fdsw', 'tre', 'yhgfth']
    #    li    
    
    =================     sort()  =================
    li=(78,3,65,34,135)
    li.sort()
    AttributeError: 'tuple' object has no attribute 'sort'
    
    ===============sorted()        ================
    li=(78,3,65,34,135)
    print(sorted(li))
    [3, 34, 65, 78, 135]