Python3中对range()逆序的解释

作者:yuping_zhu 时间:2023-03-26 10:27:59 

对range()逆序的解释

在 Python3.6 中,range() 函数返回一个可迭代的范围对象,范围类型表示不可变的数字序列,一般用在 for 循环中。

range() 的返回值不是列表,是需要通过转换类型才能变成列表。

Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> range(4)
range(0, 4)

>>> a = range(4)
>>> type(a)
<class 'range'>

>>> b = list(range(4))
>>> b
[0, 1, 2, 3]
>>> type(b)
<class 'list'>

使用方式: range(start, stop[, step]):

  • start: 计数从 start 开始。默认是从 0 开始。range(4) 相当于 range(0,4)

  • stop: 计数到 stop 结束,不包括 stop。range(0,4) 转成 list 后表示 [0, 1, 2, 3]

  • step:步长,默认为1。range(0,3) 相当于 range(0, 3, 1)

range函数逆序有两种实现方式

1.先创建一个可迭代对象,后对其中的元素进行逆序操作。

a = range(6)  # list(a): [0, 1, 2, 3, 4, 5]
new = []
for i in reversed(a):
    new.append(i)
print(new)  # [5, 4, 3, 2, 1, 0]

2.利用range()函数特点来进行逆序。

new =[]
for i in range(5, -1, -1):
    new.append(i)
print(new)  # [5, 4, 3, 2, 1, 0]

range(a,b),函数"包前不包后",只包含a,不包含b,默认步长为1。

来看一个比较难的问题

删除某个list里面的重复元素,用sort进行排序,要求从列表list的最后一个元素开始判断

a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]

a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
a.sort()
last=a[-1]
for i in range(len(a)-2,-1,-1):
    if last==a[i]:
        del a[i]
    else:
        last=a[i]
print(a)            # [0, 1, 2, 3, 4, 5, 7, 8, 9, 10]

解释:

a = [1, 2, 4, 2, 4, 5, 7, 10, 5, 5, 7, 8, 9, 0, 3]  # length : 15
a.sort()
print(a)       # [0, 1, 2, 2, 3, 4, 4, 5, 5, 5, 7, 7, 8, 9, 10]
last = a[-1]
print(last)    # 最后一个元素是last,最开始时为10
# 从index=13(倒数第2个)(包含)开始,倒着数,到 index=-1 (不含)
# 或者说:从下标index=13(含),到index=-1(不含)相当于到index=0(含)
for i in range(len(a)-2, -1, -1):
    if last == a[i]:    #  将最后一个元素 分别与 其他元素比较大小
        del a[i]      # 相同就删掉
    else:
        last = a[i]     # 不同就把当前元素赋值传给last
print(a)

range的逆序输出

range的逆序输出的两种方式:

1.使用range里的步长参数 step,step为负值即代表反向输出

range(begin, end, step)

range(begin, end, -1) 表示逆序,范围为: [begin, end)

例子如下:

# range(begin, end, 方向)  范围为: [begin, end) 即 [3, 2, 1]
for i in range(3, 0, -1):
   print(i)
print('\n')
# 范围为 [3, 2, 1, 0]
for i in range(3, -1, -1):
   print(i)

#========== 结果 ==========#
3
2
1

3
2
1
0

2.使用reverse直接逆序输出

for i in reversed(range(10)):
   print(i)
"""
输出结果:
9
8
7
6
5
4
3
2
1
0
"""

来源:https://blog.csdn.net/qq_31362767/article/details/81702491

标签:Python3,range,逆序
0
投稿

猜你喜欢

  • 如何用Frontpage下载别人的网站模板

    2008-03-03 12:58:00
  • PHP常量及变量区别原理详解

    2023-09-05 06:35:45
  • Access的特点及其概念问答

    2009-09-10 19:00:00
  • tensorflow 1.X迁移至tensorflow2 的代码写法

    2023-07-19 08:30:54
  • Python的numpy库下的几个小函数的用法(小结)

    2021-12-13 10:29:33
  • Python交互式图形编程的实现

    2021-09-04 18:19:15
  • Asp中Server.ScriptTimeOut属性需要注意的一点

    2011-04-27 08:41:00
  • python鼠标绘图附代码

    2021-09-09 17:10:26
  • ASP连接access和mssql数据库的全能代码

    2008-10-12 13:17:00
  • Python 循环读取数据内存不足的解决方案

    2022-02-25 17:32:17
  • 实例解析Python中的__new__特殊方法

    2023-01-09 22:26:19
  • python 根据时间来生成唯一的字符串方法

    2022-12-25 14:49:48
  • ASP运行在IIS6 500错误解决办法

    2011-04-19 11:15:00
  • python函数超时自动退出的实操方法

    2021-09-11 07:07:45
  • 浅谈Oracle数据库的建模与设计

    2010-07-20 12:55:00
  • SQL Server数据库对于应用程序的关系

    2010-09-08 09:42:00
  • 基于多进程中APScheduler重复运行的解决方法

    2021-12-18 05:10:11
  • 网页对联广告代码效果大全

    2007-10-25 23:16:00
  • oracle 在一个存储过程中调用另一个返回游标的存储过程

    2009-09-26 18:54:00
  • Go Gin实现文件上传下载的示例代码

    2023-06-21 15:11:13
  • asp之家 网络编程 m.aspxhome.com