1. 程式人生 > >python:range() 逆序的解釋

python:range() 逆序的解釋

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)