zoukankan      html  css  js  c++  java
  • Python range() 函数

    range()是python的内置函数,用的地方挺多的,目前我经常会在for循环中作为循环的次数来使用,其实range()的用法不仅仅如此,本文给大家介绍下。

    如果你确实需要遍历一个数字序列,内置函数 range() 会派上用场。它生成算术级数:

    >>> for i in range(5):
    ...     print(i)
    ...
    0
    1
    2
    3
    4

    给定的终止数值并不在要生成的序列里;range(10) 会生成10个值,并且是以合法的索引生成一个长度为10的序列。range也可以以另一个数字开头,或者以指定的幅度增加(甚至是负数;有时这也被叫做 '步进')

    range(5, 10)
       5, 6, 7, 8, 9
    
    range(0, 10, 3)
       0, 3, 6, 9
    
    range(-10, -100, -30)
      -10, -40, -70

    要以序列的索引来迭代,您可以将 range() 和 len() 组合如下:

    >>> a = ['Mary', 'had', 'a', 'little', 'lamb']
    >>> for i in range(len(a)):
    ...     print(i, a[i])
    ...
    0 Mary
    1 had
    2 a
    3 little
    4 lamb

    然而,在大多数这类情况下,使用 enumerate() 函数比较方便,请参见 循环的技巧 。

    如果你只打印 range,会出现奇怪的结果:

    >>> print(range(10))
    range(0, 10)

    range() 所返回的对象在许多方面表现得像一个列表,但实际上却并不是。此对象会在你迭代它时基于所希望的序列返回连续的项,但它没有真正生成列表,这样就能节省空间。

    我们说这样的对象是 可迭代的 ,也就是说,适合作为函数和结构体的参数,这些函数和结构体期望在迭代结束之前可以从中获取连续的元素。我们已经看到 for 语句就是这样一个迭代器。函数 list() 是另外一个;它从可迭代对象中创建列表。

    >>> list(range(5))
    [0, 1, 2, 3, 4]

    后面,我们会看到更多返回可迭代对象的函数,和以可迭代对象作为参数的函数。

  • 相关阅读:
    摘记
    【题解】网格 & Single Cut of Failure(trick:答案上界)
    题解 CF1404C 【Fixed Point Removal】
    Linux IO模型知识梳理
    Java IO模型知识梳理
    如何回答什么是线程安全?
    MySQL主从复制与备份
    MySQL的高性能索引策略
    CAS(乐观锁)的原理解析
    Java虚拟机的类加载机制
  • 原文地址:https://www.cnblogs.com/yuanrenxue/p/10709047.html
Copyright © 2011-2022 走看看