2日前にソケットプログラミングを習ったのですが、ある専門家にアドバイスを求めたら、歩き方を覚える前に走りたくなった気がしました。マスターは、私の現在のレベルでは、ファイルの操作やシリアル番号などの小さな練習をして理解を深めるべきだと言いました。以下は彼が私に与えた小さな練習問題です:
1. data = [['sherry',19,'雌'],['flora',21,'雌'],['june',15,'femal ']]、名前と年齢の頭文字に従って出力を並べ替えます
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]))
実際にやってみました。午後中ずっと (Face を入力)
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)) 题目1
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])) 题目2答案
公式 Python ドキュメントを確認して、得られた知識をまとめます。
1、sorted
(iterable[, key][, reverse])
オプションの 2 つのキーワード引数を使用して並べ替えられたリストを返します (引数を指定するには位置ではなく引数名を使用します)。
keyは、パラメータを持つ関数を定義し、この関数のパラメータとしてリストの要素を抽出し、呼び出したキーワードとして値を返します。デフォルト値はNoneです(リストの要素を直接比較します)。
reverseはブール値です。 True は、リスト内の要素を逆順に並べ替えることを意味します。 2. ln(a,b)、a
Pythonソート関数の導入に関連するその他の記事については、PHP中国語Webサイトに注目してください。