Python中的列表理解与生成器表达式
该列表是不同类型元素的集合,并且有许多方法可以在Python中创建列表。
清单理解
列表理解是在一行Python代码中创建列表的最佳方法之一。它用于节省创建列表的大量时间。
让我们以一个例子来更好地理解列表理解,该列表计算可以计算最多10个数字的平方。首先,我们尝试使用for循环来完成此操作,然后,我们将在Python中通过列表理解来进行操作。
通过使用for循环:
List_of_square=[] for j in range(1,11): s=j**2 List_of_square.append(s) print('List of square:',List_of_square)
输出结果
List of square: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
现在,我们通过列表理解来做到这一点,
List_of_square=[j**2 for j in range(1,11)] print('List of square:',List_of_square)
输出结果
List of square: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
如我们所见,for循环的多行代码在列表理解中被压缩为一行代码,还节省了执行时间。
生成器表达式
生成器表达式与列表理解有些相似,但是要获取生成器表达式的输出,我们必须对其进行迭代。这是使用较少的内存来解决相同的问题(在列表压缩中占用更多内存)的最佳方法之一。在这里,使用圆括号代替列表形式的输出。让我们看一个示例,以更好地理解生成器表达式,该表达式将计算最多20个偶数的平方。
程序:
generators_expression=(j**2 for j in range(1,21) if j%2==0) print('square of even number:') for j in generators_expression: print(j, end=' ')
输出结果
square of even number: 4 16 36 64 100 144 196 256 324 400