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

  • 相关阅读:
    int是逻辑炸弹吗?
    悲剧
    下班啦
    Android SDK 2.2 开发环境安装
    MVC
    用于主题检测的临时日志(61d47e0cd5874842a9f56a725c1f25f6 3bfe001a32de4114a6b44005b770f6d7)
    ASP.NET读取XML文件
    asp.net执行顺序
    理解POCO
    乐观中谨慎 招聘调薪现"贫富差距"
  • 原文地址:https://www.cnblogs.com/lout/p/3832286.html
Copyright © 2011-2022 走看看