首页 > 解决方案 > 如何将两个列表从传递给函数的列表映射到字典中

问题描述

我正在尝试将两个列表映射到字典中。我知道如何做到这一点,但是当从函数传递列表时遇到问题,只有每个列表中的第一个值被映射。我尝试了所有映射方法:

def main():
    pop = [34372,37821,45673,67100,69100,70245]
    years = ['2012','2013','2014','2016','2017','2018']
    highest_year_change(years,pop)

def highest_year_change(years,pop):

    year_pop_dict = {}

    year_pop_tuples = zip(years,pop)
    for key, value in year_pop_tuples:
        year_pop_dict[key] = value

    print(year_pop_dict)

输出:{'2012':34372}

我第一次尝试:year_pop_dict = dict(zip(years,pop)) 但结果相同。只有当列表没有在函数之间传递时,才会按预期创建字典。`

标签: pythonlistdictionarymapping

解决方案


我假设两个列表的长度相同,因此以下解决方案:)

pop = [34372,37821,45673,67100,69100,70245]
years = ['2012','2013','2014','2016','2017','2018']

def convert_to_dictionary(pop, years):

    dic = {}
    length = len(pop)
    for i in range(0, length, 1):
        dic.update({years[i]:pop[i]})

    return dic

result = convert_to_dictionary(pop, years)


推荐阅读