Python学习笔记(七)

一、判断一个对象是否支持迭代

  from collections import Iterable
  isinstance("ABC",Iterable)


二、将list变成索引-元素对的形式循环遍历

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


三、使用for循环同时迭代两个变量

  for i,v in [(1,2),(3,4),(5,6)]:
    print(i,v)


四、列表生成器简介

  列表生成器是一种快速的生成列表的方法

  list(range(1,100))
  [x * x for x in range(1,100)]
  [x * x for x in range(1,100) if x%2 == 0]
  [n + m for n in "ABC" for n in "DEF"]
  [k+v for k,v in d.items()] #其中d为dict
  [s.lower() for s in list ] #将原有的lsit中的元素变成小写的


五、生成器介绍

  生成器是根据特定的算法或者公式推测出来的,通过生成器可以解决在内存有限的情况下获取特定元素的值


六、创建生成器

  g = (x*x for x in [1,2,3,4,5])
  def number():
    n = 1
    while True:
      yield n
      n += 2
  g = number()

  yield是一个关键字,如果一个函数中存在yield关键字,那么该函数将变成一个迭代器
  当程序每次执行的yield时,将返回相应的数值并中断本次执行并保存当前执行的变量、位置、状态,再次调用时将直接执行下一条语句

  next(生成器) 将使生成器生成下一个值


七、迭代器

  凡是可以使用for循环进行遍历的对象都是Iterable类型
  凡是可以作用于next()函数对象的都是Iterator类型
  凡是生成器都是Iterator类型
  集合数据类型如lsit、dict、str等都是Iterable的但并不是Iterator,但可以通过使用iter()来获得一个Iterator对象,例如:isinstance(iter("ABC"),Iterator) 


  

  

  

原文地址:https://www.cnblogs.com/userchencq/p/7528725.html