用python,少不了循环遍历,这里记录一下,for in range 的结构用法。
range()函数结构如下:
def range(__x: int, __y: int = ..., __step: int = ...) -> List[int]: ...
也可以理解成:range(start,end,step) or range(n).
- step默认是1,也可以指定step.
- [start,end]区间范围左闭右开,没有区间定义的话默认从0开始,n-1结束。
for i in range(1,5):
print(i)
->1,2,3,4
for i in range(5):
print(i)
->0,1,2,3,4
for i in range(0,5,2):
print(i)
->0,2,4
for i in range(0,5,3):
print(i)
->0,3
列表倒序(逆序)输出:
方法一:通过列表的反转函数进行倒序
for i in range(4):
print i
->0,1,2,3
a = range(4) #-->range函数本身就是一个列表输出
for i in reversed(a):
print i
->3,2,1,0
方法二:利用range本身的特性(左闭右开):
#假如你想倒序5的range
for i in range (5):
print i
->0,1,2,3,4
#因为左闭右开特性,这里start要取n-1 也就是4。
for i in range(4,1,-1):
print i
->4,3,2
for i in range(4,0,-1):
print i
->4,3,2,1
#逆序
for i in range(4,-1,-1):
print i
->4,3,2,1,0
方法三:利用下标切片逆序
a = range(4)
#或者a = [0,1,2,3]
for m in a[::-1]:
print m
->3,2,1,0
拓展:
逆向访问特定区间值:
l= [1,3,5,6,7,8]
l[::-1][:3] #逆序后访问前三位 or
l[-3:][::-1]#先访问后三位后逆序
拓展:字符串反转的几种方法:
1.字符串切片
s = 'Hello,World'
result = s[::-1]
2.转列表使用reverse
l = list(s)
l.reverse()
result = "".join(l)
3.列表切片
l = list(s)
result = "".join(l[::-1])
4.for循环遍历
def func(s):
result = ""
max_index = len(s)-1
for index,value in enumerate(s):
result += s[max_index-index]
return result
result = func(s)
5.模拟栈操作
def func(s):
l = list(s) #模拟全部入栈
result = ""
while len(l)>0:
result += l.pop() #模拟出栈
return result
result = func(s)
6.使用递归函数
def func(s):
if len(s) <1:
return s
return func(s[1:])+s[0]
result = func(s)
7.使用reduce函数
reduce(lambda x, y: x+y, s) #正序
reduce(lambda x, y: y+x, s) #逆序