• python高级篇


    1.切片功能:类似于java中的split方法。对list或者triple中几个值进行取出的过程。

    L = ['a','b','c','d']   L[0:3] = ['a','b','c']   #下标从0开始,取到第n-1个元素  L[-2:] =['c','d'] #倒序取值

    2.迭代(循环)功能:python中的可遍历对象只要是可迭代对象,例如list,triple,dict,字符串

    dict默认迭代的是key值,也可以循环value值。for value  in d.values()  同时迭代  for k,v in d.items()

    判断是否为可迭代对象:

    from collections import Iterable

    isinstance('abc',Iterable)  #字符串是否可迭代    True

    isinstance([1,2,3],Iterable)  #list是否可迭代    True

    isinstance(123,Iterable)  #整数是否可迭代    True

    带下标输出:

    for i, value in enumerate(['A','B','C'])   

    print(i,value)

    0 A  1 B  2 C

    3.列表生成式

    生成简单的list可以用 list(range(1,11))  通用表达式为: [x for x in range(1,11)]

    # 添加if判断: [x * x for x in range(1,11) if x % 2 ==0]

    #两层循环:[m+n for m in 'abc' for n in 'xyz']

    练习:判断list中元素是否为字符串,  

    L1 = ['Hello','World',18,'Apple',None]

    L2 = [x.lower() for x in L1 if isinstance(x,str)]

    print(L2)

    4.生成器

    通过列表生成式创建时,由于内存大小的限制,列表的容量是有限的。因此采用一边循环,一边计算的机制,也就是生成器(generator)

    #创建一个生成器,将列表生成式中的[]改成()即可

    L = [x * x for x in range(10)]

    g = (x * x for x in range(10))

    可以通过next()函数获得下一个返回值(不实用,一般通过for循环获取)

    #斐波拉契数列函数

    def fib(max):

          n,a,b = 0,0,1

          while n < max:

                 print(b)

                 a,b = b,a+b    # t = (b,a+b)  t为tuple  a = t[0]  b = t[1]

                 n = n+1

           return 'done'

    #斐波拉契数列生成器

    def fib(max):

          n,a,b = 0,0,1

          while n < max:

                 yield  b

                 a,b = b,a+b    # t = (b,a+b)  t为tuple  a = t[0]  b = t[1]

                 n = n+1

           return 'done'

    函数和生成器的执行流程不同,函数是顺序执行,遇到return语句或最后一行语句就返回。而生成器则是在每次调用next()时执行,遇到yield语句返回。再次执行时从上次返回的yield语句继续执行

    5.迭代器

    可用于for循环的对象称为可迭代对象  (有穷元素)

    可以被next()函数调用并不断返回下一个值的对象称为迭代器 (Iterator)  (无穷元素)

    可迭代对象不是迭代器,但是可以通过iter()函数来进行转换

    (可迭代对象就好比我们去饭店点餐,我们点的总是有限的。而迭代器就如同吃自助餐,我们手里只有一个盘子,每次也只能取一个食物。但食物的供应量相对来讲是无限的。同样的食物,从饭店拿到自助店就创造出了迭代器)

  • 相关阅读:
    解决Xcode 7编译错误:does not contain bitcode
    iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
    iOS- 如何集成支付宝
    99.Recover Binary Search Tree
    101.Symmetric Tree
    108.Convert Sorted Array to Binary Search Tree
    242.Valid Anagram
    292.Nim Game
    872.Leaf-Similar Trees
    HDU-1390 Binary Numbers
  • 原文地址:https://www.cnblogs.com/bkyf/p/10096023.html
Copyright © 2020-2023  润新知