Python 推导式


Python推导式是一种能够快速生成列表,字典和集合等数据结构的语法。它通过一行代码实现了一部分循环程序的功能,避免了繁琐的循环操作和大量的代码书写。Python中有三种推导式:列表推导式,字典推导式和集合推导式。

列表推导式

列表推导式的基本语法为:

[expression for item in iterable if condition]

item 表示原列表中的元素,iterable表示原列表, expression 是对 item 做出的操作以及 if 后面的附加条件。其中 expressionif 是可选的,也可以添加多个 for 循环:

[expression for item1 in iterable1 if condition1
            for item2 in iterable2 if condition2 ...
            for itemN in iterableN if conditionN]

列表推导式主要用于从一个列表中过滤元素,并将过滤后的元素赋值到一个新的列表中。举个例子,我们可以将原列表中所有小于10的数变成它的平方,并将这些平方数作为新元素存储到新列表中。

original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_list = [i ** 2 for i in original_list if i < 10]

这段代码通过列表推导式生成了一个新列表 new_list,其中汲取了 1-9 的平方数。

字典推导式

Python 字典推导式是一种通过遍历一个可迭代对象来创建字典的方式,它拥有与列表推导式类似的语法。

{key_expression: value_expression for item in iterable}

其中 key_expressionvalue_expression 是对 item 所做出的操作。举个例子:

original_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
new_dict = {k: v**2 for k, v in original_dict.items()}

这里我们可以看到,字典推导式将 original_dictkey 对应的 value 取平方,然后创建了一个新字典 new_dict

集合推导式

集合推导式与列表推导式非常类似,唯一的区别就是它们用花括号 {} 来生成一个集合。

{expression for item in iterable}

举个例子:

original_set = {1, 2, 3, 4, 5, 6}
new_set = {i**2 for i in original_set}

这段代码通过集合推导式创建了一个新集合 new_set,其中包含 2 的平方,3 的平方等。

总结

Python 推导式简化了列表、字典和集合的创建过程。它们的使用又比繁琐的循环操作能够更容易理解。因此在日常工作中,我们应该多多了解和使用 Python 推导式来提高编程效率。