• python系列三推导式


    1.1. 概述:
      Python推导式是从一个数据集合构建另外一个新的数据结构的语法结构. 最常见的就是列表的推导式
    1.2. 详细描述:
      列表推导式的语法:[expr for value in collection if condition]
    其中:
    1). collection: 原始列表
    2). value:列表中的原始数据
    3). ifcondition: 过滤value的条件,满足条件再传入expr. 可选表达
    4). expr: 对满足条件的value进一步处理后生成新的元素放在新的列表中
      字典推导式的语法:{ key_expr: value_expr for key_expr,value_expr in collection if condition}
    其中:
    1). collection:可迭代对象
    2). key_expr: 键表达式
    3). value_expr:值表达式
    4). ifcondition: 过滤value的条件,满足条件再传入expr. 可选表达式
    5). expr: 对满足条件的value进一步处理后生成新的元素放在新的字典中

    1.3. 应用场景:

    #1、获取0-100的奇数.
    list1=range(0,101)
    newlist1 = [ i for i in list1 if i%2 ]
    print(newlist1)
    
    #2、将第一个列表中的元素作为键,第二个列表中的元素作为值生成新的字典
    # zip()函数可以成对读取元素
    questions = ["name","age","hobby"]
    answers = ["tom","19","swimming"]
    dict = { key:q for key,q in zip(questions,answers) if not key == q}
    print(dict)
    
    
    #3、得到当前目录下所有的文件
    import os
    files = [filename for filename in os.listdir("C:/AA/doc/") if os.path.isfile("C:/AA/doc/"+filename)]
    print(files)

    另一个经典的算法问题:斐波那契数列又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列如下,以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

    使用生成器的方式实现:

    # 使用生成器方式实现
    # 生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停,
    # 而可以使用next()函数和send()函数恢复生成器。
    # 而且返回值不再是一个列表,而是一个生成器.可以通过for in 或者next()来取值
    def fibonaci(n):
        i,num1,num2 = 0,1,1
        while i < n:
            yield num1
            num1,num2 = num2 ,num1 + num2
            i = i+1
    
    
    print([i for i in fibonaci(6)])
  • 相关阅读:
    数据库 Mysql事务详解
    数据库 Mysql内容补充二
    数据库 Mysql内容补充一
    优化Django ORM中的性能问题(含prefetch_related 和 select_related)
    django高级
    百度,谷歌,360,搜狗,神马等蜘蛛IP段
    中国电信、联通、移动、教育IP分布
    sed 给文件每行末尾追加相同字符
    centos7 lvs keepalived做DNS集群负载
    Notepad++ 删除空白行的方法
  • 原文地址:https://www.cnblogs.com/sunshine2017/p/11761077.html
Copyright © 2020-2023  润新知