欢迎访问宙启技术站
智能推送

Python中的字典推导(DictionaryComprehension)

发布时间:2023-06-19 04:12:22

Python中的字典推导(Dictionary Comprehension)是一种快速创建字典的方法。它与列表推导(List Comprehension)非常相似,但是用于字典的。

使用字典推导,在一行代码中可以创建一个字典,这提供了一种简洁而快速的方法来处理数据。字典推导的语法如下所示:

{key:value for (key, value) in iterable}

其中,可迭代对象(iterable)可以是一个列表、元组或集合等,它包含了要建立字典的键值对。循环遍历可迭代对象中的元素,为每个元素创建一个键值对,并将这些键值对存储到字典中。

下面我们通过一些例子来看看字典推导的实际应用。

1. 创建有规律的字典

我们来创建一个键为0到4,值为键的平方的字典,使用字典推导如下:

squares = {i:i**2 for i in range(5)}
print(squares) #{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

2. 创建值为操作结果的字典

可以通过对可迭代对象中的元素进行某种操作来创建字典。例如,我们可以创建一个将列表中的元素乘2的字典。如下所示:

lst = [1, 2, 3, 4, 5]
dict_lst = {i:i*2 for i in lst}
print(dict_lst) #{1: 2, 2: 4, 3: 6, 4: 8, 5: 10}

3. 创建筛选后的字典

有时候,我们只想把一些特定的元素添加到字典中,可以使用条件语句来过滤可迭代对象中的元素。例如,我们可以创建一个键为偶数,值为偶数的平方的字典如下:

squares = {i:i**2 for i in range(10) if i%2==0}
print(squares) #{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

4. 创建键和值反转的字典

有时候,我们想创建一个值作为键,键作为值的字典。使用字典推导,可以很容易地完成这个任务。例如,我们可以创建一个将键和值反转的字典如下:

ori_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
rev_dict = {value:key for key, value in ori_dict.items()}
print(rev_dict) #{1: 'a', 2: 'b', 3: 'c', 4: 'd'}

以上代码中,我们使用了items()方法来访问原字典中的键和值。

总之,字典推导可以是代码更加简洁、易读,同时提高代码效率。值得注意的是,如果字典推导的表达式过于复杂,建议使用普通的多行语句来创建字典,以保持代码的易读性。