python-sortとsorted

2863 ワード

sorted()関数は反復可能なオブジェクトをソートするために使用され、リストのlist()関数とは異なり、後者は元の位置でソートされ、ソート後の元のリストの要素の順序が変更され、前者はソート後の構造を新しいリストに生成します.
list = [1,2,7,66,3,4,9,8,0]
print(list)
list2 = sorted(list)
print(list2)

1つ目の実験結果式はソートを行い,2つ目はソートを行った.sortedの使用
[1, 2, 7, 66, 3, 4, 9, 8, 0]
[0, 1, 2, 3, 4, 7, 8, 9, 66]
list.sort()
print(list)

[0, 1, 2, 3, 4, 7, 8, 9, 66]                  

数値のサイズでソート
list1 = [1,3,4,-5,-8,9,-7]
print(list1)           
list1.sort()
print(list1)                      

[1, 3, 4, -5, -8, 9, -7]
[-8, -7, -5, 1, 3, 4, 9]

絶対値でソート
list1 = [1,3,4,-5,-8,9,-7]
list2 = sorted(list1,key=abs)
print(list2)

[1, 3, 4, -5, -7, -8, 9]

大文字と小文字で並べ替え
s= ['Abs','Dfs','Fsd','bbs']
print(s)                
print(sorted(s))         
print(sorted(s,key=str.lower))                
print(sorted(s,key=str.upper,reverse=True))                      
 
['Abs', 'Dfs', 'Fsd', 'bbs']
['Abs', 'Dfs', 'Fsd', 'bbs']
['Abs', 'bbs', 'Dfs', 'Fsd']
['Fsd', 'Dfs', 'bbs', 'Abs']

じっけん
info = [
    #               
    ('apple1',200,32),
    ('apple2', 40, 12),
    ('apple3', 1000, 23),
    ('apple1', 40, 2),
    ('apple1', 40, 5)
]
#          
def num(x):
    return x[1]
#          
def price(x):
    return x[2]
#          -    ,        
#          -     
def num_price(x):
    return x[1],x[2]
print(sorted(info,key=num))
print(sorted(info,key=price))
print(sorted(info,key=num_price))

[('apple2', 40, 12), ('apple1', 40, 2), ('apple1', 40, 5), ('apple1', 200, 32), ('apple3', 1000, 23)]
[('apple1', 40, 2), ('apple1', 40, 5), ('apple2', 40, 12), ('apple3', 1000, 23), ('apple1', 200, 32)]
[('apple1', 40, 2), ('apple1', 40, 5), ('apple2', 40, 12), ('apple1', 200, 32), ('apple3', 1000, 23)]

練習は,学生の名前と成績を1組のtupleで表すと仮定し,L=[(‘Bob’,75),(‘Adam’,92),(‘Bart’,66),(‘Lisa’,88)],名前順に並べ替える.
[('Bob', 75), ('Adam', 92), ('Bart', 66),
('Lisa', 88)]
print(sorted(L,key=lambda x:x[0]))

[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]

整形配列を指定し、配列内のすべての0を末尾に移動し、0以外の項目は変わらない.元の配列を移動し、新しい配列を作成しないでください.入力:最初の行は配列の長さで、後続の各行は配列のレコードです.4 0=27=10=22=1#出力:調整後の配列の内容;7 2 0 0
n = int(input())
li = [int(input()) for i in range(n)]
def num(item):
    if item == 0:
        return 2
    else:
        return 1
    for i in sorted(li,key=num):
        print(i)