zoukankan      html  css  js  c++  java
  • 高级特性

    1、切片

      L[0:3]、L[:3]、L[3:]、L[-1:]、L[:10:2]、L[::5]

      tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple。

      字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串。

    2、迭代

      在Python中,迭代是通过for ... in来完成的。

      只要是可迭代对象,无论有无下标,都可以迭代

      默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

      字符串也可迭代。

      判断是否可迭代:通过collections模块的Iterable类型判断。

        isinstance('abc', Iterable) # str是否可迭代

      enumerate函数可以把一个list变成索引-元素对

    3、列表生成式

      [结果计算式 for x in range(a, b) if 条件判断]

      两层循环: [m + n for m in 'ABC' for n in 'XYZ']

            ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

    4、生成器(generator)

      一边循环一边计算的机制,节省了大量的空间。

      原理:在for循环的过程中不断计算出下一个元素,并在适当的条件结束for循环。

    5、迭代器

      可以直接作用于for循环的数据类型有以下几种:

        一类是集合数据类型,如listtupledictsetstr等;

        一类是generator,包括生成器和带yield的generator function。

      生成器都是Iterator对象,但listdictstr虽然是Iterable,却不是Iterator。把listdictstrIterable变成Iterator可以使用iter()函数

  • 相关阅读:
    疯狂Java讲义-Java基础类库
    第十一届软件类校内模拟赛本科组Java软件开发
    疯狂Java讲义
    疯狂Java讲义-面向对象(下)
    疯狂Java讲义-面向对象(上)
    疯狂Java讲义-流程控制与数组
    疯狂Java讲义-数据类型和运算符
    数据结构-图和图遍历(DFS、BFS)
    A1034 Head of a Gang (30分)
    A1098 Insertion or Heap Sort (25分)
  • 原文地址:https://www.cnblogs.com/yl-saber/p/9524098.html
Copyright © 2011-2022 走看看