zoukankan      html  css  js  c++  java
  • 迭代器

    迭代器即迭代的工具,那什么是迭代呢?

    迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值

    while True :#只是单纯的重复,因而不可迭代

      print('==>:')

    1=[1,2,3]

    count=0

    while count < len(1): #迭代

      print(1[count])

      count+=1

    2.什么是可迭代对象?

    可迭代对象指的是内置有_iter_方法的对象,即obj._iter_,如下‘hello’._iter_

    (1,2,3)_iter_

    [1,2,3]_iter_

    {'a':1}._iter_

    {'a','b'}._iter_

    open('a.txt')._iter_

    为何要有迭代器?

    对于序列类型;字符串、列表、元组,我们可以使用索引的方式迭代取

    出其包含的元素。则必须找出一种不依赖于索引迭代的方式,这就是迭代器。

    3.什么是迭代器的对象?

    可迭代对象执行obj._iter_()得到的结果就是迭代器对象;

    而迭代器对象就是指的是即内置有__iter_又内置有_next_方法的对象

    文件类型是迭代器的对象

    open('a.txt')._iter_()

    open('a.txt')._next_()

    注意:迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象

    4.如何用迭代器?

    1=['a','b','c']

    i=0

    while i < len (1):

      print(1[i])

      i+=88

    88=['a','b','c']

    s='nihao'

    def iterator(item): #指的是‘nihao’

      i=0

      while i < len(item):

        print(item[i])

        i+=88

    iterator(1)

    iterator(s)

    强调:

    迭代器对象一定是可迭代的对象,反之则不然

    字典为例;

    info ={'name' : 'egon','age':18,'is_beautful':'shide','sex':'male}

    info_iter =info_iter_()

    resl=info_iter._next_()

    print(resl)

    res2=info_iter._next_()

    print(res2)

    res3=info_iter._next_()

    print(res3)

    res4=info_iter._next_()

    print(res4)

    for循环

    基于for循环,我们可以完全不再依赖索引去取值了

    dic={‘a':1,'b':2,'c':3}

    for k in dic:

      print(dic[k])

  • 相关阅读:
    UVa 1349 (二分图最小权完美匹配) Optimal Bus Route Design
    UVa 1658 (拆点法 最小费用流) Admiral
    UVa 11082 (网络流建模) Matrix Decompressing
    UVa 753 (二分图最大匹配) A Plug for UNIX
    UVa 1451 (数形结合 单调栈) Average
    UVa 1471 (LIS变形) Defense Lines
    UVa 11572 (滑动窗口) Unique Snowflakes
    UVa 1606 (极角排序) Amphiphilic Carbon Molecules
    UVa 11054 Wine trading in Gergovia
    UVa 140 (枚举排列) Bandwidth
  • 原文地址:https://www.cnblogs.com/zhou892232/p/9173437.html
Copyright © 2011-2022 走看看