python-sortとsorted
2863 ワード
sorted()関数は反復可能なオブジェクトをソートするために使用され、リストのlist()関数とは異なり、後者は元の位置でソートされ、ソート後の元のリストの要素の順序が変更され、前者はソート後の構造を新しいリストに生成します.
1つ目の実験結果式はソートを行い,2つ目はソートを行った.sortedの使用
数値のサイズでソート
絶対値でソート
大文字と小文字で並べ替え
じっけん
練習は,学生の名前と成績を1組のtupleで表すと仮定し,L=[(‘Bob’,75),(‘Adam’,92),(‘Bart’,66),(‘Lisa’,88)],名前順に並べ替える.
整形配列を指定し、配列内のすべての0を末尾に移動し、0以外の項目は変わらない.元の配列を移動し、新しい配列を作成しないでください.入力:最初の行は配列の長さで、後続の各行は配列のレコードです.4 0=27=10=22=1#出力:調整後の配列の内容;7 2 0 0
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)