Python 字典推导式
在本教程中,我们将学习如何在 Python 中使用字典推导式。如果您已经熟悉列表推导式,那么学习字典推导式将不会花费太多时间。
我们需要键值对来创建字典。如何使用字典推导式获取这些键值对?请参见字典推导式的通用语句。
{key: value for ___ in iterable}
我们需要填写上述语句以完成字典推导式。有很多方法可以填写它。让我们看看一些最常见的方法。
让我们看看如何在 10 的范围内生成数字作为键,并将它们的平方作为值。我们的结果应类似于 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}。请参见下面的代码。
示例
# creating the dictionary squares = {i: i ** 2 for i in range(10)} # printing the dictionary print(squares)
输出
如果您运行上述代码,将得到以下结果。
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
如何使用此推导式从两个列表创建字典?我们可以使用 zip 方法从两个列表获取并行值。让我们看看如何从 [1, 2, 3, 4, 5] 和 [a, b, c, d, e] 创建字典。
示例
# keys keys = ['a', 'b', 'c', 'd', 'e'] # values values = [1, 2, 3, 4, 5] # creating a dict from the above lists dictionary = {key: value for (key, value) in zip(keys, values)} # printing the dictionary print(dictionary)
输出
如果您执行上述程序,将得到以下输出。
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
我们还可以使用 enumerate 方法从单个列表生成一个字典,其中索引作为键。让我们看看如何做到这一点。
示例
# values values = ['a', 'b', 'c', 'd', 'e'] # generating a dict using enumerate dictionary = {key: value for (key, value) in enumerate(values)} # printing the dict print(dictionary)
输出
如果您运行上述代码,则将得到以下输出。
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}
结论
您可以根据需要使用字典推导式。学习掌握字典推导式的最佳方法是在有可能性时随时使用它们。如果您在本教程中有任何疑问,请在评论部分提出。
广告