[Python] for in range()使用以及列表字符串反轉方法


用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) #逆序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM