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

    如何使用列表解析

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

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

    列表解析是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)]
    专题推荐:列表解析
    上一篇:python用什么编辑器 下一篇:python如何启动

    相关文章推荐

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

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网