在Python中使用列表索引值计算列表值更改

2024-10-06 12:35:45 发布

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

我有一份关于年份和失业率的清单:

datalist= [[1947, 3.9], [1948, 3.8], [1949, 5.9], [1950, 5.3], [1951, 3.3], 
           [1952, 3.0], [1953, 2.9], [1954, 5.5], [1955, 4.4] . . .]

我可以通过

def newYear(a):
    newList = datalist[:]
    for i in range(len(newList)):
        newList[i][0] += 1
    return newList

我希望创建一个新的名单名单与今年和百分之变化在失业率从上一年。我试着添加 b、 a和c的函数,但我不知道如何使这个工作。你知道吗

def newYear(a):
    newList = datalist[:]
    for i in range(len(newList)):
        newList[i][0] += 1

        b = newList[i + 1][1]
        a = newList[i][1]
        c = (b-a)/a * 100

    return newList

Tags: 函数inforlenreturndefrange年份
1条回答
网友
1楼 · 发布于 2024-10-06 12:35:45

为了尽可能接近你目前的方法,你可以试试这个。向前看(即使用x+1索引)会让事情变得更加困难;列表中的第一年不能比前一年有百分比变化。当您到达列表中的最后一项时,您还可以通过使用range(len(a))获得IndexError。所以更自然的做法是使用x,然后向后看一个周期(x-1)。你知道吗

datalist= [[1947, 3.9], [1948, 3.8], [1949, 5.9], [1950, 5.3], [1951, 3.3], 
           [1952, 3.0], [1953, 2.9], [1954, 5.5], [1955, 4.4]]

def newYear(a):
    new_list = []
    new_list.append([a[0][0], a[0][1], 0]) # No change for first year
    for x in range(1, len(a)):
        year = a[x][0]
        previous_unemployment = a[x-1][1]
        current_unemployment = a[x][1]
        percent_change = ((current_unemployment - previous_unemployment) 
                        / previous_unemployment)*100
        new_list.append([year, current_unemployment, percent_change])

    return new_list

calc_percentages = newYear(datalist)
print calc_percentages

相关问题 更多 >