如何使用列表解析

python

根据已有列表,高效创建新列表的方式。

列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中。

语法:

[expression for iter_val in iterable]

[expression for iter_val in iterable if cond_expr]

实例展示:

  要求:列出1~10所有数字的平方

 2####################################################

 31、普通方法:

  >>> L = []

  >>> for i in range(1,11):

 ...     L.append(i**2)

  ... 

  >>> print L

  [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 ####################################################

 2、列表解析

 >>>L = [ i**2 for i in range(1,11)]

 >>>print L

 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 1 要求:列出1~10中大于等于4的数字的平方

 2 ####################################################

 3 1、普通方法:

 4 >>> L = []

 5 >>> for i in range(1,11):

 6 ...     if i >= 4:

 7 ...         L.append(i**2)

 8 ... 

 9 >>> print L

10 [16, 25, 36, 49, 64, 81, 100]

11 ####################################################

12 2、列表解析

13 >>>L = [ i**2 for i in range(1,11) if i >= 4 ]

14 >>>print L

15 [16, 25, 36, 49, 64, 81, 100]

 1 要求:列出1~10所有数字的平方除以2的值

 2 ####################################################

 3 1、普通方法

 4 >>> L = []

 5 >>> for i in range(1,11):

 6 ...     L.append(i**2/2)

 7 ... 

 8 >>> print L

 9 [0, 2, 4, 8, 12, 18, 24, 32, 40, 50]

10 ####################################################

11 2、列表解析

12 >>> L = [i**2/2 for i in range(1,11) ]

13 >>> print L

14 [0, 2, 4, 8, 12, 18, 24, 32, 40, 50]

1 要求:实现两个列表中的元素逐一配对。

 2 1、普通方法:

 3 >>> L1 = ['x','y','z']

 4 >>> L2 = [1,2,3]      

 5 >>> L3 = []

 6 >>> for a in L1:

 7 ...     for b in L2:

 8 ...         L3.append((a,b))

 9 ... 

10 >>> print L3

11 [('x', 1), ('x', 2), ('x', 3), ('y', 1), ('y', 2), ('y', 3), ('z', 1), ('z', 2), ('z', 3)]

12 ####################################################

13 2、列表解析:

14 >>> L1 = ['x','y','z']

15 >>> L2 = [1,2,3]

16 L3 = [ (a,b) for a in L1 for b in L2 ]

17 >>> print L3

18 [('x', 1), ('x', 2), ('x', 3), ('y', 1), ('y', 2), ('y', 3), ('z', 1), ('z', 2), ('z', 3)]

以上是 如何使用列表解析 的全部内容, 来源链接: utcz.com/z/522515.html

回到顶部