列表生成式

列表生成式,是Python内置的一种极其强大的生成list的表达式。

如果要生成一个list [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9] 可以用 range(1 , 10):


  
  
  1. >>> range(19)  
  2. [12345678

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


  
  
  1.  L= []  
  2. >>> for x in range(1 , 10):  
  3. ...     L.append(x*x)  
  4. ...   
  5. >>> L  
  6. [149162536496481
而列表生成式,可以用一句代替以上的繁琐循环来完成上面的操作:


     
     
  1. >>> print [x*x for x in range(1 , 11)]  
  2. [149162536496481100]  
  3. >>>  

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

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

          第二:后面跟上for循环

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

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


  
  
  1.  [x*x for x in range(1 , 11if x%2 == 0
  2. [4163664100]  
  3. >>>  

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

     
     
  1.  print [m + n for m in 'ABCD' for n in 'XYZ']  
  2. ['AX''AY''AZ''BX''BY''BZ''CX''CY''CZ''DX''DY''DZ']  
  3. >>>  
如何使用两个变量来生成list:

    
    
    • d = {'Java':"99" , 'C':"99" , 'C++':"99" }  
    • L = [k+'='+v for k , v in d.iteritems()]  
    •   #
      k+'='+v   为key和value
    • print L 
        
        
    最后来做一个练习:

    L = ['Java' , 'C' , 'Swift' , 'Python' , 123] , 现在有 list 中包含字符串,和整数,把list中得大写字符转为小写,推到出另外一个list":

    1、使用内建的isinstance函数可以判断一个变量是不是字符串

    2、s.lower() 可以将一个大写字母转为小写。

    3、增加if语句保证列表生成式正确执行。

    代码如下:

    
      
      
    1. L = ['Java' , 'C' , 'Swift' , 'Python' , 123]  
    2. print [s.lower() if isinstance(s , str) else s for s in L ] 
    3. # s为一个变量



    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值