シンプルなマップ削減のアイデアを実装するpythonプログラムを分析して理解しようとしています。一部のコードを理解するのが困難です。
Person = namedtuple('Person', ['name', 'gender', 'age', 'height'])
persons = [
Person('mary', 'fem', 21, 60.2),
Person('suzy', 'fem', 32, 70.1),
Person('jane', 'fem', 27, 58.1),
Person('jill', 'fem', 24, 69.1),
Person('bess', 'fem', 43, 66.6),
Person('john', 'mal', 25, 70.8),
Person('jack', 'mal', 40, 59.1),
Person('mike', 'mal', 42, 60.3),
Person('zack', 'mal', 45, 63.7),
Person('alma', 'fem', 34, 67.0),
Person('bill', 'mal', 20, 62.1),
]
def height_by_gender_and_agegroup(p):
key = p.gender, p.age //10
val = p.height
return key, val
この関数height_by_gender_and_agegroup(p)
は、それぞれに対して 2 つの値を返すようですp
。戻るらしい
<key,val> where key is p.gender and val is p.height
<key,val> where key is p.age and val is p.height
私は C および C++ でプログラミングを行ってきましたが、Python はまったくの初心者です。私の質問は、Python で倍数のペアを値で返す方法です。つまり、それがこのコードが行っていることだと仮定します。はいの場合、戻り値を処理するにはどうすればよいですか?
以下の回答は、Pythonでキーと値のペアを返すことは、2つのメンバーを持つ構造体を返すことに似ているという事実を伝えているようです.私はその部分を理解しています.
key = p.gender, p.age //10
私の質問は上記の行にあります.Key は 2 つの値を取るようですp.gender
.p.age
その場合、P の値ごとに 2 つのセットが返される必要があります<key,value>
.これはどのように機能しますか?