zoukankan      html  css  js  c++  java
  • python3--产生偏移和元素:enumerate

    之前,我们讨论过通过range来产生字符串中元素的偏移值。而不是那些偏移值处的元素。不过,在有些程序中。我们两者都需要,要用的元素以及值个元素的偏移值。从传统意义来讲,这是简单的for循环,他同时也持有一个记录当前偏移值的计数器。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    s = "spam"
    offset = 0
    for item in s:
        print(item, "appear at offset", offset)
        offset += 1
    

    以上代码执行结果:

    s appear at offset 0
    p appear at offset 1
    a appear at offset 2
    m appear at offset 3
    

    用内置函数完成以上的代码

    s = "spam"
    for (offset, item) in enumerate(s):
        print(item, "appear at offset", offset)
    
    s appear at offset 0
    p appear at offset 1
    a appear at offset 2
    m appear at offset 3
    

    emumerate函数返回一个生成器对象;这种对象支持迭代些以,它有个next方法,每次遍历列表时,会返回一个(index, value)的元组,而我们能在for中通过元组赋值运算将其分解(很像是使用zip)

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    s = "spam"
    E = enumerate(s)
    print(E.__next__())
    print(E.__next__())
    print(E.__next__())
    print(E.__next__())
    

    执行结果:

    (0, 's')
    (1, 'p')
    (2, 'a')
    (3, 'm')
    

    我们一般不会看到其作用的机制,这是因为迭代环境(包括列表解析)会自动执行迭代协议:

    s = "spam"
    a = [c * i for (i, c) in enumerate(s)]
    print(a)
    

    运行结果:

    ['', 'p', 'aa', 'mmm']
    
  • 相关阅读:
    手机抓包
    基础数据-wiki
    Laravel异常日志
    用户设备、UA检测 相关
    yum安装的nginx新增模块http_image_filter_module笔记
    nginx 配置图片自动裁剪
    PHP中使用ffmpeg截取视频图片笔记
    采集乱七八糟记录下
    Laravel学习笔记之session使用
    html5 新增表单类型
  • 原文地址:https://www.cnblogs.com/chenlin163/p/7298790.html
Copyright © 2011-2022 走看看