• 技术文章 >常见问题 >Python常见问题

    如何使用列表解析

    silencementsilencement2019-08-20 09:10:56原创2699

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

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

    语法:

    1

    2

    [expression for iter_val in iterable]

    [expression for iter_val in iterable if cond_expr]

    实例展示:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    要求:列出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

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    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

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    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

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    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)]

    专题推荐:列表解析
    上一篇:python用什么编辑器 下一篇:python如何启动

    相关文章推荐

    • python中如何打开文件• python中大于等于怎么表示

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网