平均一组元组

时间:2017-03-30 10:50:16

标签: python list average namedtuple

请帮助我!我已经超越了这一点,并且认为我已经完全离开了某个地方。

我获得了一个csv文件供使用并从中推断数据。有相当多的国家列表,其相应的GDP,失业率等等。我的意思是1.提供列表中GDP最高的国家,以及2.确定该国的失业率是否低于平均水平。我能够通过数据定义确定(我认为)但是当我试图找到给定列表中的平均失业率时,我遇到了问题(我使用命名元组按失业率和国家来组织列表名称)。

def highest_gdp(logdp:List[CountryGDP])-> str: 
    """
    returns the name of the country with the highest GDP
    """
    #Return "" #body of the stub
    #template from List[CountryGDP] 

    highest = logdp[0] #type: CountryGDP
    for gdp in logdp:
        if gdp.cgdp >= highest.cgdp:
            highest = gdp
        return highest.name


def average_unemployment(louemp:List[Unemployment])-> float:
    """
    returns the average unemployment rate of the given list
    """
    #return 0 #body of the stub
    #template from List[Unemployment]

    average = louemp[0] #type: Unemployment
    for uemp in louemp:
        if uemp.rate > 0: 
            average = uemp
        return sum(uemp.rate)/float(len(louemp))

我认为第一部分是正确的。我跑的时候没有发现任何错误,但我似乎无法找出第二个能够恢复平均失业率的错误!无论我尝试什么,我都会收到各种错误信息!我知道这是超级基础,但请帮助!!!

1 个答案:

答案 0 :(得分:0)

我认为您需要将return语句置于for循环之外。对于这两种情况。我没有检查逻辑。

def highest_gdp(logdp:List[CountryGDP])-> str: 
    """
    returns the name of the country with the highest GDP
    """
    #Return "" #body of the stub
    #template from List[CountryGDP] 

    highest = logdp[0] #type: CountryGDP
    for gdp in logdp:
        if gdp.cgdp >= highest.cgdp:
            highest = gdp
    return highest.name


def average_unemployment(louemp:List[Unemployment])-> float:
    """
    returns the average unemployment rate of the given list
    """
    #return 0 #body of the stub
    #template from List[Unemployment]

    average = louemp[0] #type: Unemployment
    for uemp in louemp:
        if uemp.rate > 0: 
            average = uemp
    return sum(uemp.rate)/float(len(louemp))