将列表映射到字典

PythonPythonBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在 Python 中,字典是键值对的集合。有时,我们需要从一个列表创建一个字典,其中键是列表的元素,值是对这些元素应用一个函数的结果。在这个挑战中,你将创建一个函数,使用一个函数将列表的值映射到一个字典。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/variables_data_types -.-> lab-13684{{"将列表映射到字典"}} python/comments -.-> lab-13684{{"将列表映射到字典"}} python/lists -.-> lab-13684{{"将列表映射到字典"}} python/tuples -.-> lab-13684{{"将列表映射到字典"}} python/dictionaries -.-> lab-13684{{"将列表映射到字典"}} python/function_definition -.-> lab-13684{{"将列表映射到字典"}} python/lambda_functions -.-> lab-13684{{"将列表映射到字典"}} python/build_in_functions -.-> lab-13684{{"将列表映射到字典"}} python/data_collections -.-> lab-13684{{"将列表映射到字典"}} end

将列表映射到字典

编写一个名为 map_dictionary(itr, fn) 的 Python 函数,该函数接受两个参数:

  • itr:一个值列表
  • fn:一个函数,该函数接受一个值作为输入并返回一个值作为输出

该函数应返回一个字典,其中键值对由原始值作为键,函数的结果作为值组成。

要解决此问题,请执行以下步骤:

  1. 使用 map()fn 应用于列表的每个值。
  2. 使用 zip() 将原始值与 fn 产生的值配对。
  3. 使用 dict() 返回一个适当的字典。
def map_dictionary(itr, fn):
  return dict(zip(itr, map(fn, itr)))
map_dictionary([1, 2, 3], lambda x: x * x) ## { 1: 1, 2: 4, 3: 9 }

总结

在这个挑战中,你学习了如何从一个列表创建一个字典,其中键是列表的元素,值是对这些元素应用一个函数的结果。你使用了 map()zip()dict() 函数来解决这个问题。