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

如何使用列表推导式(comprehension)来创建列表

发布时间:2023-09-10 01:56:40

列表推导式(List Comprehension)是一种简洁、高效的创建列表的方法,它能够通过一行代码生成一个列表。在 Python 中,列表推导式的语法形式为 [expression for item in iterable if condition],其中 expression 表示对 item 进行操作的表达式,item 是迭代的元素,iterable 是可迭代的对象,condition 是可选的条件。

下面是使用列表推导式创建列表的示例和讲解:

1. 创建一个包含 1-10 数字的列表:

   numbers = [number for number in range(1, 11)]
   print(numbers)  # 输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
   

在这个例子中,expression 是 number,表示将 number 添加到列表中。item 是 range(1, 11) 的元素,即所有在 1-10 之间的数字。由于没有指定 condition,所以所有的数字都会被添加到列表中。

2. 创建一个包含 1-10 之间偶数的列表:

   even_numbers = [number for number in range(1, 11) if number % 2 == 0]
   print(even_numbers)  # 输出结果:[2, 4, 6, 8, 10]
   

在这个例子中,expression 是 number,表示将 number 添加到列表中。item 是 range(1, 11) 的元素,即所有在 1-10 之间的数字。condition 是 number % 2 == 0,表示只有当 number 满足条件时才添加到列表中,即只有偶数才会被添加。

3. 创建一个包含字符串的长度的列表:

   words = ['apple', 'banana', 'cherry', 'date']
   lengths = [len(word) for word in words]
   print(lengths)  # 输出结果:[5, 6, 6, 4]
   

在这个例子中,expression 是 len(word),表示计算字符串的长度,并将其添加到列表中。item 是 words 的元素,即字符串列表中的每个单词。由于没有指定 condition,所以所有的字符串的长度都会被添加到列表中。

4. 创建一个包含字符串中元音字母的列表:

   vowels = ['a', 'e', 'i', 'o', 'u']
   word = 'hello'
   vowel_letters = [letter for letter in word if letter in vowels]
   print(vowel_letters)  # 输出结果:['e', 'o']
   

在这个例子中,expression 是 letter,表示将 letter 添加到列表中。item 是 word 的元素,即字符串中的每个字母。condition 是 letter in vowels,表示只有当 letter 是元音字母时才添加到列表中。

通过这些例子,我们可以看到列表推导式可以非常方便地创建各种类型的列表。使用列表推导式能够简化代码,并且提升代码的可读性和可维护性。但是在使用列表推导式时,也需要注意不要写出过于复杂的表达式和条件,以免降低代码的可读性和可理解性。