zoukankan      html  css  js  c++  java
  • 12. 函数-推导式

    一、列表推导式

    1. 语法格式
    	[ 结果 for 变量 in 可迭代对象 if 条件 ]
    
    2. 代码示例
    	# 100以内能被3整除的数的平方
    	gen = [i * i for i in range(100) if i % 3 == 0]
    	for num in gen:
    		print(num)
    

    二、生成器推导式

    1. 语法格式
    	( 结果 for 变量 in 可迭代对象 if 条件 )
    
    2. 代码示例
    	# 100以内能被3整除的数的平方
    	gen = (i * i for i in range(100) if i % 3 == 0)
        gen.__next__()
        
    	for num in gen:
    		print(num)
    

    三、字典推导式

    1. 语法格式
    	{key: value for循环 if 筛选}
    
    2. 代码示例
    	dic = {"张无忌":"九阳神功", "乔峰":"降龙十八掌", "楚留香":"帅"}
    	d = {dic[k]: k for k in dic}
    	print(d)
    

    四、集合推导式

    1. 语法格式
    	{key for if}
    
    2. 代码示例
        lst = ["周杰伦","周伯通","周润发","周伯通","周笔畅","周伯通","周星驰","周伯通"]
        s = {el for el in lst}
        print(s)
    

    备注:⽣成器表达式和列表推导式的区别:

    • 列表推导式比较耗内存. ⼀次性加载. ⽣成器表达式⼏乎不占⽤内存. 使⽤的时候才分 配和使⽤内存

    • 得到的值不⼀样. 列表推导式得到的是⼀个列表. ⽣成器表达式获取的是⼀个⽣成器.⽣成器的惰性机制: ⽣成器只有在访问的时候才取值

  • 相关阅读:
    C#图片处理示例(裁剪,缩放,清晰度,水印)
    lucene4.5近实时搜索
    mongo 多条件 查询
    Lucene:QueryParser
    Lucene的中文分词器IKAnalyzer
    Lucene为不同字段指定不同分词器(转)
    Thrift初用小结
    lucene4.0与之前版本的一些改变
    lucene 资料
    Mongodb快速入门之使用Java操作Mongodb
  • 原文地址:https://www.cnblogs.com/hq82/p/11745641.html
Copyright © 2011-2022 走看看