Python列表理解用法详细介绍

本文概述

  • Python3
  • Python3
  • Python3
  • Python3
  • Python3
  • Python3
  • Python3
Python以鼓励开发人员和程序员编写高效, 易懂且几乎易读的代码而闻名。该语言最独特的方面之一是python列表和列表压缩功能, 可以在一行代码中使用它来构造强大的功能。列表推导用于从其他可迭代对象(如元组, 字符串, 数组, 列表等)创建新列表。
列表推导由包含表达式的方括号组成, 该表达式针对每个元素以及用于循环遍历每个元素的for循环执行。
语法如下:
newList = [如果条件, 则为oldList中元素的expression(element)]
迭代列表
有多种方法可以遍历列表。但是, 最常见的方法是使用对于循环。让我们看下面的例子:
Python3
# Empty list List = []# Traditional approach of iterating for character in 'Geeks 4 Geeks!' : List .append(character)# Display list print ( List )

输出如下:
[‘ G’ , ‘ e’ , ‘ e’ , ‘ k’ , ‘ s’ , ” , ‘ 4’ , ” , ‘ G’ , ‘ e’ , ‘ e’ , ‘ k’ , ‘ s’ , ‘ !’ ]
上面是对列表, 字符串, 元组等进行迭代的传统方法的实现。现在列表理解可以完成相同的任务, 并使程序更简单。
列表推导将使用for循环的传统迭代方法转换为简单的公式, 从而使其易于使用。下面是使用列表理解迭代列表, 字符串, 元组等的方法。
Python3
# Using list comprehension to iterate through loop List = [character for character in 'Geeks 4 Geeks!' ]# Displaying list print ( List )

输出如下:
[‘ G’ , ‘ e’ , ‘ e’ , ‘ k’ , ‘ s’ , ” , ‘ 4’ , ” , ‘ G’ , ‘ e’ , ‘ e’ , ‘ k’ , ‘ s’ , ‘ !’ ]
下面是一些示例, 这些示例描述了列表推导的使用, 而不是传统的通过可迭代对象进行迭代的方法:
示例1:显示从1到10的数字的平方。
Python3
# Getting square of numbers from 1 to 10 squares = [n * * 2 for n in range ( 1 , 11 )]# Display square of numbers print (squares)

输出如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

示例2:显示随机数列表中的偶数元素。
Python3
# List of random numbers List = [ 4 , 8 , 12 , 7 , 8 , 63 , 99 ]# Displaying only even numbers print ([n for n in List if n % 2 = = 0 ])

输出如下:
[4, 8, 12, 8]

示例3:切换字符串中每个字符的大小写。
Python3
# Initializing string string = 'Geeks4Geeks!'# Toggle case of each character List = [s.swapcase() for s in string]# Display list print ( List )

输出如下:
[‘ g’ , ‘ E’ , ‘ E’ , ‘ K’ , ‘ S’ , ‘ 4’ , ‘ g’ , ‘ E’ , ‘ E’ , ‘ K’ , ‘ S’ , ‘ !’ ]
示例4:反转元组中的每个字符串。
Python3
# Initializing tuple Tuple = ( 'Geeks' , 'for' , 'Geeks' )# Reverse each string in tuple List = [string[:: - 1 ] for string in Tuple ]# Display list print ( List )

输出如下:
['skeeG', 'rof', 'skeeG']

示例5:显示列表中所有奇数元素的数字总和。
Python3
# Explicit function def digitSum(n): dsum = 0 for ele in str (n): dsum + = int (ele) return dsum# Initializing list List = [ 367 , 111 , 562 , 945 , 6726 , 873 ]# Using the function on odd elements of the list newList = [digitSum(i) for i in List if i & 1 ]# Displaying new list print (newList)

输出如下:
[16, 3, 18, 18]

【Python列表理解用法详细介绍】首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

    推荐阅读