日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 Python教程 正文

Python3中對range()逆序的解釋_python

作者:yuping_zhu ? 更新時間: 2022-07-15 Python教程

對range()逆序的解釋

在 Python3.6 中,range() 函數返回一個可迭代的范圍對象,范圍類型表示不可變的數字序列,一般用在 for 循環中。

range() 的返回值不是列表,是需要通過轉換類型才能變成列表。

Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> range(4)
range(0, 4)

>>> a = range(4)
>>> type(a)
<class 'range'>

>>> b = list(range(4))
>>> b
[0, 1, 2, 3]
>>> type(b)
<class 'list'>

使用方式: range(start, stop[, step]):

  • start: 計數從 start 開始。默認是從 0 開始。range(4) 相當于 range(0,4)
  • stop: 計數到 stop 結束,不包括 stop。range(0,4) 轉成 list 后表示 [0, 1, 2, 3]
  • step:步長,默認為1。range(0,3) 相當于 range(0, 3, 1)

range函數逆序有兩種實現方式

1.先創建一個可迭代對象,后對其中的元素進行逆序操作。

a = range(6) ?# list(a): [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()函數特點來進行逆序。

new =[]
for i in range(5, -1, -1):
? ? new.append(i)
print(new) ?# [5, 4, 3, 2, 1, 0]

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)

range的逆序輸出

range的逆序輸出的兩種方式:

1.使用range里的步長參數 step,step為負值即代表反向輸出

range(begin, end, step)

range(begin, end, -1) 表示逆序,范圍為: [begin, end)

例子如下:

# range(begin, end, 方向)  范圍為: [begin, end) 即 [3, 2, 1]
for i in range(3, 0, -1):
    print(i)
print('\n')
# 范圍為 [3, 2, 1, 0]
for i in range(3, -1, -1):
    print(i)
 
#========== 結果 ==========#
3
2
1
 
3
2
1
0

2.使用reverse直接逆序輸出

for i in reversed(range(10)):
    print(i)
"""
輸出結果:
9
8
7
6
5
4
3
2
1
0
"""

原文鏈接:https://blog.csdn.net/qq_31362767/article/details/81702491

欄目分類
最近更新