【问题标题】:How can I map two lists into a dictionary from lists being passed into function如何将两个列表从传递给函数的列表映射到字典中
【发布时间】:2020-08-14 08:41:54
【问题描述】:

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

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)) 但结果相同。只有当列表没有在函数之间传递时,才会按预期创建字典。 `

【问题讨论】:

  • dict(zip(years, pop)) 返回{'2012': 34372, '2013': 37821, '2014': 45673, '2016': 67100, '2017': 69100, '2018': 70245}
  • 为我工作 - 当 main 被调用时 {'2012': 34372, '2013': 37821, '2014': 45673, '2016': 67100, '2017': 69100, '2018': 70245} 被打印出来。

标签: python list dictionary mapping


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 2011-05-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多