ホームページ >バックエンド開発 >Python チュートリアル >Pythonのsorted関数に関する小さな例
2日前にソケットプログラミングを学んだのですが、ある専門家にアドバイスを求めたところ、歩き方を学ぶ前に走りたかったような気がしました。マスターは、私の現在のレベルでは、ファイルの操作やシリアル番号などの小さな練習をして理解を深めるべきだと言いました。以下は彼が私に与えた小さな練習問題です:
1. data = [['sherry',19,'雌'],['flora',21,'雌'],['june',15,'女性']]、名前と年齢の最初の文字に従って出力を並べ替えます
2. 指定された出力メソッドに従って比較結果を出力し、
class_mates = {'sherry':[18,'male'],'june':[20,'female'],'flora':[19,'female'],'alina':[21,'male']} class Person(object): def __init__(self,name,age): self.name = name p1 = Person('sherry',20) p2 = Person('june',20) if p1<p2: print('p1:{} less than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age])) else: print('p1:{} gte than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))
これは非常に簡単です。午後中ずっと (顔を平手打ち)
def get_first(info): first_value = info[0][0] return first_value na = sorted(datas,key=get_first) print(na) def age_sort(info): return info[1] print(sorted(datas,key=age_sort))質問 2 への答え
class_mates = {'sherry':[18,'male'],'june':[20,'female'],'flora':[19,'female'],'alina':[21,'male']}
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age
def __lt__(self,others):
if(self.age<others.age):
return 1
elif(self.age==others.age):
if(self.name[0]<others.name[0]):
return 1
else:
return 0
return 0
p1 = Person('sherry',20)
p2 = Person('june',20)
if p1<p2:
print('p1:{} less than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))
else:
print('p1:{} gte than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))
(1、sorted
iterable[, key][, reverse]) オプションの 2 つのキーワード引数を使用して並べ替えられたリストを返します (引数を指定するには位置ではなく引数名を使用します)。
は、パラメータを持つ関数を定義し、この関数のパラメータとしてリストの要素を抽出し、呼び出したキーワードとして値を返します。デフォルト値はNoneです(リストの要素を直接比較します)。 reverse はブール値です。 True は、リスト内の要素を逆順に並べ替えることを意味します。
2. ln(a,b)、a
以上がPythonのsorted関数に関する小さな例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。