0

こんにちは、少しでもお役に立てれば幸いです。

私はデータセットを持っています

Name, Age, 

Mark, 19, 
John, 19, 
Jess, 25, 
Jonty, 21, 

このデータを取得するために、職場までの距離を比較する計算を実行します

職場までの距離(km) 20 25 30 40

私がやりたいのは、これらをそれぞれの名前に関連付けることです。リストまたはクラス構造のものを使用してこれを行いますか?? これは私が望む出力です。

Mark, 19, 20
John, 19, 25
Jess, 25, 30
Jonty, 21, 40

第二に、これらの値を比較して平均を出すことが可能かどうかを知りたいですmaxdist = 35

これらすべての距離を最大距離と比較して、表示される値を取得するように記述できますか。

Mark, 19, 20
John, 19, 25
Jess, 25, 30

平均年齢を計算しますか?? つまり、21を取得するには??

4

2 に答える 2

0

それらが常に同じ順序であると仮定すると、次のような大雑把なことを行うことができます-クラスはやり過ぎだと思います:

>>> people = [
... ('Mark', 19,) ,
... ('John', 19, ),
... ('Jess', 25, ),
... ('Jonty', 21,)]
>>>
>>> to_work = map(int, '20 25 30 40'.split())
>>> result = []
>>> ages = []
>>> for index, person in enumerate(people):
...     name, age = person
...     result.append((name, age, to_work[index]))
...     ages.append(age)
...
>>> print '\n'.join(map(str, result))
('Mark', 19, 20)
('John', 19, 25)
('Jess', 25, 30)
('Jonty', 21, 40)
>>> print 'max dist =', max(to_work)
max dist = 40
>>> print 'avg. age =', sum(ages) / len(ages)
avg. age = 21
于 2013-07-15T04:53:23.347 に答える
0

別のテイク:

people = \
[
    {"name": "Mark", "Age" : 19, "Distance" : 20},
    {"name": "John", "Age" : 19, "Distance" : 25},
    {"name": "Jess", "Age" : 25, "Distance" : 30},
    {"name": "Jonty", "Age" : 21, "Distance" : 40}
]

avg_dist = sum([person["Distance"] for person in people])/len(people)
print "Average Distance: %d" % avg_dist

lt_dist_filter = lambda dist: lambda x: x["Distance"] < dist
lt_35 = filter(lt_dist_filter(35), people)
print lt_35

avg_age = sum([person["Age"] for person in people])/len(people)
print "Average Age: %d" % avg_age
于 2013-07-15T04:54:21.083 に答える