zoukankan      html  css  js  c++  java
  • 列表生成式

    转载至:http://blog.csdn.net/watermusicyes/article/details/43762551

    在python中,列表生成式是一种可以便捷地生成列表的表达式。 有的时候可替代list.append()。

    如果要生成[1*1 , 2*2 , 3*3 , ... , 10*10] 怎么做呢?可以使用循环:

    >>> L= []
    >>> for x in range(1 , 10):
    ...     L.append(x*x)
    ... 
    >>> L
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    而列表生成式,可以用一句代替以上的繁琐循环来完成上面的操作:

    >>> print [x*x for x in range(1 , 11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    >>> 
    

    列表生成式的书写格式:[x*x for x in range(1 , 11)] 

    第一:把要生成的元素 x*x 放到前面

    第二:后面跟上for循环

    这样就可以把list创建出来。

    for循环后面还可以加上if判断,这样可以筛选出偶数的平方:

    >>> [x*x for x in range(1 , 11) if x%2 == 0]
    [4, 16, 36, 64, 100]
    >>> 
    

    当然,可以使用两层循环,生成全排列: 

    >>> print [m + n for m in 'ABCD' for n in 'XYZ']
    ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ', 'DX', 'DY', 'DZ']
    >>> 
    

    如何使用两个变量来生成list:

    d = {'Java':"99" , 'C':"99" , 'C++':"99" }
    L = [k+'='+v for k , v in d.iteritems()]
    
    print L
    

      

     

      

  • 相关阅读:
    【JavaScript DOM 编程艺术】 笔记
    如何循序渐进有效学习 JavaScript?
    如何正确学习JavaScript
    HTML5学习
    window上杀死node进程
    HTML5:离线存储
    js面向对象的理解
    H5项目常见问题及注意事项
    查找已连接过的wifi密码
    flex的兼容
  • 原文地址:https://www.cnblogs.com/snapeliu/p/4965883.html
Copyright © 2011-2022 走看看