我想分析和理解一个python程序实现了一个简单的map-reduce想法。我在理解一些代码时遇到了一些困难。在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)
似乎每个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中返回一个键 - 值对类似于返回一个具有两个成员的结构。我理解该部分。
key = p.gender, p.age //10
我的问题是上述line.Key似乎取两个值p.gender
和p.age
。如果是这样的话我们需要有两套<key,value>
返回P. 的每个值这是如何工作的?
我建议你通过启动
如同任何元组,则可以通过下标或以指定成员访问其值阅读[相关的Python教程](http://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences)。 – flup 2013-02-11 18:47:12