zoukankan      html  css  js  c++  java
  • python学习(3)

    Python学习(3)
    切片(Slice):根据索引范围取出字符串里面的内容,比如: l=range(100)   l[:8] [0, 1, 2, 3, 4, 5, 6, 7] 
                  l[:10:2]  [0, 2, 4, 6, 8]
        list、tuple、set 、字符串都可以做切片操作
    迭代(iteration):Python的迭代器比较强悍,用for...in...迭代只要是可迭代对象都是可以的list、tuple、dict、set、字符串也可以。例如:
        >>> d = {'a': 1, 'b': 2, 'c': 3}
        >>> for key in d:
        ...     print key
        ...
        a
        c
        b
    列表生成式:实际上是Python里面非常强大的创建List的方法,比如你想创建一个List是由1~10的平方组成的,你可以这样写:
       >>> l=[]
       >>> for n in range(1,10):
       ...     l.append(n*n)
       ...
       >>> l
       [1, 4, 9, 16, 25, 36, 49, 64, 81]
       当然Python又提供了一种新的列表生成:[x*x for x in range(1,11)] 就可以了,非常简洁,但是效果一样。
       下面是大写转小写方法:
       l=['Hello','World','Apple',9]
       i=0
       for n in l:
        if isinstance(n,str):
         l[i]=n.lower()
        i=i+1
       print l
    生成器(generator):为了节省内存,list里面的元素不必都存,根据一种算法在循环过程推算出后面的元素:实际上只要把列表生成器[]改成()就可以了,例如:
         >>> g=(x*x for x in range(10))
         >>> g.next()
         0
         generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。
         而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。例如:
         >>> def odd():
         ...     print 'step 1'
         ...     yield 1
         ...     print 'step 2'
         ...     yield 3
         ...     print 'step 3'
         ...     yield 5
         ...
         >>> o = odd()
         >>> o.next()   #调用时先打印‘step 1’,然后遇到yield然后返回一个1
         step 1
         1
         >>> o.next()  #调用时从上次返回的yield的下一句执行。
         step 2
         3
         >>> o.next() 
         step 3
         5
         >>> o.next()  #抛出StopIteration错误
         Traceback (most recent call last):
           File "<stdin>", line 1, in <module>
         StopIteration

  • 相关阅读:
    Android开发如何定制framework层服务
    Intellij IDEA通过SVN导入基于Springboot的maven项目以及对已有项目做更新
    intelliJ IDEA 怎么添加本地的idea web项目
    Android热修复之AndFix使用教程
    iOS友盟分享的使用总结
    iOS 传感器集锦
    IOS CALayer的属性和使用
    Swift使用Alamofire实现网络请求
    Android踩坑随笔Fragment中onActivityResult方法不被调用
    上周热点回顾(4.30-5.6)团队
  • 原文地址:https://www.cnblogs.com/lout/p/3832286.html
Copyright © 2011-2022 走看看