进行个别比较?

2024-09-27 20:17:22 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,如果您能提供任何帮助,请给我一点帮助。你知道吗

我有数据集

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??你知道吗


Tags: 数据name距离列表age名字john结构
2条回答

假设它们总是在同一个顺序中,你可以做一些像这样粗糙的事情-我会说类是一种过度杀伤力:

>>> 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

另一个镜头:

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

相关问题 更多 >

    热门问题