迭代

作者: Peng_001 | 来源:发表于2020-05-23 16:34 被阅读0次

参考:迭代

如果给定一个list 或tuple,我们可以通过for 遍历这个list 或tuple,这种遍历称为迭代(iteration)。

python 的for循环抽象程度要高于其他语言的循环,因为它不仅可以用在list或tuple上,还可以用在str 与dict。

因为dict 的存储方式并不是有序的,和list 与tuple 不一样,因此迭代出的结果可能不同。

另外, 默认情况下,dict 迭代的是键,如果要迭代值,则需要专门标注。

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

for value in d.values():
      print(value)

如果要同时迭代key与value,则需要用.items。

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

for k, v in d.items():
      print(k, ":", v)

除此之外,我们还可以在for 循环中同时引用两个变量。

for x, y in [(1, 1), (2, 4), (3, 9)]:
    print(x, y)

但需要注意的是,迭代指定的参数数目与其实际迭代对象的数目要相等,不然函数会报错。

for x,y,z in [(1, 1), (2, 4), (3, 9)]:
    print(x, y, z)

ValueError: not enough values to unpack (expected 3, got 2)

for x, y in [(1, 1, 3), (2, 4), (3, 9)]:
    print(x, y)

ValueError: too many values to unpack (expected 2)

构建迭代索引

我们除了可以迭代dict 时直接通过同时迭代key-value 的方式实现索引,也可以实现list 的下标循环。

enumerate 函数可以使一个可迭代对象变成索引-元素对,这样就可以在循环时同时迭代索引和元素本身。

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

如何判断对象是否可迭代

python 提供了collections模块的Iterable类型。

from collections import Iterable

print(isinstance('abc', Iterable)) # 判断‘abc’是否可迭代
print(isinstance(123, Iterable)) # 判断整数'123'是否可迭代

练习

# -*- coding: utf-8 -*-
# 请使用迭代查找一个list中最小和最大值,并返回一个tuple:

def findMinAndMax(L):
    if L == []:
        return (None, None) # 列表为空,返回指定元组
    else:
        x = L[0] # 初始化x
        y = L[0] # 初始化y
        for a in L: # 迭代列表L
            if a > x: # 如果比现有的最大值大,则替换之
                x = a
            if a < y: # 如果比现有的最小值小,则替换之
                y = a
        return (y, x) # 返回(min, max)

相关文章

  • 迭代

    经济发展快 时代在迭代 不想被淘汰 必须去迭代 认知需迭代 思维需迭代 行为需迭代 迭代跟潮流 迭代战自我 迭代向未来

  • stream系列——初识stream

    初识stream 1、对于迭代来说,包含内部迭代和外部迭代。 外部迭代:(程序逻辑自己控制迭代过程) 内部迭代:(...

  • 迭代器与生成器

    迭代(iteration)与可迭代(iterable) 迭代器 迭代器协议(iterator protocol) ...

  • 迭代器,生成器,面向过程编程

    迭代器 一、迭代的概念迭代器即迭代的工具,那什么是迭代呢?迭代是一个重复的过程。每一次重复即一次迭代,并且每次迭代...

  • 第7章迭代器模式

    第7章迭代器模式 7.1 jQuery中的迭代器 7.2 实现自己的迭代器 7.3 内部迭代和外部迭代 1内部迭代...

  • Python高级知识点学习(六)

    Python中的迭代协议 迭代协议有两个概念: 可迭代类型(Iterable) 迭代器(Iterator) 迭代器...

  • 解线性方程组的迭代法

    Jacobi迭代法 迭代公式 代码 Gauss-Seidel迭代法 迭代公式 代码 SOR 迭代公式 其中. 代码

  • 9 ES6 迭代器、生成器

    1、Iterator迭代器 ->遵循迭代模式思想实现,分为内部迭代器、外部迭代器,聚焦点:添加迭代接口 (1).迭...

  • 迭代器

    本节实验我们将为大家讲解迭代器,主要介绍 5 种常见迭代器:输入、输出迭代器,前向逆向迭代器,双向迭代器和随机迭代...

  • day15 迭代器 生成式 面向过程

    Ⅰ 迭代器 什么是迭代器 器: 工具 Ⅱ 什么是迭代? 迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结...

网友评论

      本文标题:迭代

      本文链接:https://www.haomeiwen.com/subject/jogkahtx.html