列表推导式(List Comprehension)是一种简洁的创建新列表的方法,它允许你使用一行代码生成一个新的列表。列表推导式的语法如下:
new_list = [expression for item in iterable if condition]
其中:
expression
:用于计算新列表中的每个元素的表达式,通常是对item
的操作。item
:表示从iterable
中取出的每个元素。iterable
:一个可迭代对象(如列表、元组、集合或字典的键)。condition
:(可选)一个过滤条件,只有满足条件的item
才会被包含在新列表中。
下面是一些使用列表推导式的示例:
- 创建一个0到9的平方值列表:
squares = [x**2 for x in range(10)] print(squares) # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- 从一个字符串列表中提取长度大于3的字符串:
words = ['apple', 'banana', 'cherry', 'date', 'fig', 'grape'] long_words = [word for word in words if len(word) > 3] print(long_words) # 输出:['banana', 'cherry', 'grape']
- 从一个字典中提取所有键的列表:
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4} keys_list = [key for key in my_dict] print(keys_list) # 输出:['a', 'b', 'c', 'd']
- 创建一个包含两个列表元素之和的新列表:
list1 = [1, 2, 3, 4] list2 = [5, 6, 7, 8] sum_list = [x + y for x in list1 for y in list2] print(sum_list) # 输出:[6, 7, 8, 9, 8, 9, 10, 11, 10, 11, 12, 13]
列表推导式是一种非常强大且易于阅读的方式来创建新列表。然而,如果列表推导式过于复杂,可能会降低代码的可读性。在这种情况下,可以考虑使用其他方法(如循环)来创建新列表。