python:range() 逆序的解釋
阿新 • • 發佈:2019-01-06
python range() 函式可建立一個整數列表,一般用在 for 迴圈中。
使用方式: range(start, stop[, step])
- start: 計數從 start 開始。預設是從 0 開始。range(4) 相當於 range(0,4)
- stop: 計數到 stop 結束,不包括 stop。range(0,4) 表達 [0, 1, 2, 3]
- step:步長,預設為1。range(0,3) 相當於 range(0, 3, 1)
range函式逆序有兩種實現方式:
1 . 先建立一個列表,然後對列表中的元素進行逆序。
例如:a=range(6)
a=range(6) # [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()函式特點來進行逆序。
例如:range(5,-1,-1)
new =[]
for i in range(5,-1,-1):
new.append(i)
print(new)
記住: 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)