在Python中迭代列表集以查找最高平均值

2024-09-30 01:30:42 发布

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

如何创建遍历每个县的函数,计算投票率?你知道吗

class County:  
    def __init__(self, init_name, init_population, init_voters) :  
        self.name = init_name  
        self.population = init_population  
        self.voters = init_voters   

def highest_turnout(data) :  

    100 * (self.voters / self.population)

allegheny = County("allegheny", 1000490, 645469)  
philadelphia = County("philadelphia", 1134081, 539069)  
montgomery = County("montgomery", 568952, 399591)  
lancaster = County("lancaster", 345367, 230278)  
delaware = County("delaware", 414031, 284538)  
chester = County("chester", 319919, 230823)  
bucks = County("bucks", 444149, 319816)  
data = [allegheny, philadelphia, montgomery, lancaster, delaware, chester, bucks]  

Tags: nameselfdatainitdefpopulationcountylancaster
1条回答
网友
1楼 · 发布于 2024-09-30 01:30:42

County定义正确。 但是,函数county不正确。你知道吗

在函数highest_turnout中传递数据时,必须首先计算列表中第一个County的投票者百分比-它位于data[0]。 然后我们将“highest”设置为第一个County的国家名称,我们假设data列表中的第一个是我们见过的最高的国家名称。你知道吗

接下来,我们使用for循环开始迭代列表data中的所有County对象,以便传入每个County对象。你知道吗

变量pct给出了在当前步骤中运行的County中投票者的百分比。if函数将其与存储在变量pct中的最高百分比进行比较。如果新的百分比高于pct(返回True),则更新最高的百分比变量pct,从而更新县名称。你知道吗

def highest_turnout(data) :

  highest_pct = data[0].voters / data[0].population
  highest = data[0].name

  for county in data :
    pct = county.voters / county.population
    if pct > highest_pct :
      highest_pct = pct
      highest = county.name

相关问题 更多 >

    热门问题