速记法-python输出递减序列

Posted amcomputer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了速记法-python输出递减序列相关的知识,希望对你有一定的参考价值。

1 背景

Python里面的内置函数range()函数一般输出为递增序列, 如下面几种情况:

1.1 range实例

for i in  range(10):
	print(i)

输出为:
0
1
2
3
4
5
6
7
8
9

for i in  range(1,10,2):
	print(i)

输出为:
1
3
5
7
9

1.2 range语法介绍

range(start,end, step)
start 开始
end 结束
step 间隔

需要注意的是 range() 函数是左闭右开区间
而遇到要生成递减序列时,容易忘记语法规则,那如何迅速记忆递减序列规则呢

2 实现方式1

如想要输出,5-1之间的数:常用方式,倒序输出

for i in  range(5,1,-1):
	print(i)

输出为(注意输不出1,左闭右开区间*):
5
4
3
2
但是,由于经常使用递增输出,老是记忆错误,上面这个用法,特别是忘记加-1
可以看到,上面这个方式,虽然能实现,但是不好记忆,特别是容易忘记最后输出的值。

所以笔者喜欢用下面这个,推荐给大家,减轻记忆烦恼

3 速记法-实现方式(推荐)

使用了内置函数,reversed()

for i in  reversed(range(5)):
	print(i)

输出为:
4
3
2
1
0
笔者感觉使用上面方式实现比较自然
因为range(5)生成0到4
而加了reversed()函数后
自然想到
0到4的反转结果:4到0
就能够很好记忆了,用方式1,有时候会时不时会怀疑自己一下,需要验证,是不是错了。

tips: reversed() 函数多用于反转序列,如字符串和列表等等,比较基础的一个内置函数
注意:reversed()不改变原来数据,返回一个反转的迭代器。

下面有几个简单示例:

以上是关于速记法-python输出递减序列的主要内容,如果未能解决你的问题,请参考以下文章

最长递减子序列问题

最长递减子序列问题

最长递减子序列问题

python入门(误)速记

寻找非递减序列中绝对值最小值的绝对值

算法导论-第一章-算法在计算中的作用(速记)