Python3中對range()逆序的解釋
對range()逆序的解釋
在 Python3.6 中,range() 函數(shù)返回一個(gè)可迭代的范圍對象,范圍類型表示不可變的數(shù)字序列,一般用在 for 循環(huán)中。
range() 的返回值不是列表,是需要通過轉(zhuǎn)換類型才能變成列表。
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
: 計(jì)數(shù)從 start 開始。默認(rèn)是從 0 開始。range(4) 相當(dāng)于 range(0,4)stop
: 計(jì)數(shù)到 stop 結(jié)束,不包括 stop。range(0,4) 轉(zhuǎn)成 list 后表示 [0, 1, 2, 3]step
:步長,默認(rèn)為1。range(0,3) 相當(dāng)于 range(0, 3, 1)
range函數(shù)逆序有兩種實(shí)現(xiàn)方式
1.先創(chuàng)建一個(gè)可迭代對象,后對其中的元素進(jìn)行逆序操作。
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()函數(shù)特點(diǎn)來進(jìn)行逆序。
new =[] for i in range(5, -1, -1): ? ? new.append(i) print(new) ?# [5, 4, 3, 2, 1, 0]
range(a,b),函數(shù)"包前不包后",只包含a,不包含b,默認(rèn)步長為1。
來看一個(gè)比較難的問題
刪除某個(gè)list里面的重復(fù)元素,用sort進(jìn)行排序,要求從列表list的最后一個(gè)元素開始判斷
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) ? ?# 最后一個(gè)元素是last,最開始時(shí)為10 # 從index=13(倒數(shù)第2個(gè))(包含)開始,倒著數(shù),到 index=-1 (不含) # 或者說:從下標(biāo)index=13(含),到index=-1(不含)相當(dāng)于到index=0(含) for i in range(len(a)-2, -1, -1): ? ? if last == a[i]: ? ?# ?將最后一個(gè)元素 分別與 其他元素比較大小 ? ? ? ? del a[i] ? ? ?# 相同就刪掉 ? ? else: ? ? ? ? last = a[i] ? ? # 不同就把當(dāng)前元素賦值傳給last print(a)
range的逆序輸出
range的逆序輸出的兩種方式:
1.使用range里的步長參數(shù) step,step為負(fù)值即代表反向輸出
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) #========== 結(jié)果 ==========# 3 2 1 3 2 1 0
2.使用reverse直接逆序輸出
for i in reversed(range(10)): print(i) """ 輸出結(jié)果: 9 8 7 6 5 4 3 2 1 0 """
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn)
這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python實(shí)現(xiàn)的個(gè)人所得稅計(jì)算器示例
這篇文章主要介紹了Python實(shí)現(xiàn)的個(gè)人所得稅計(jì)算器,涉及Python條件判斷與數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-06-06python實(shí)現(xiàn)人像動(dòng)漫化的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)人像動(dòng)漫化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05python3使用tkinter實(shí)現(xiàn)ui界面簡單實(shí)例
使用tkinter創(chuàng)建一個(gè)小窗口,布置2個(gè)按鈕,一個(gè)btn關(guān)閉窗口,另一個(gè)btn用于切換執(zhí)行傳入的2個(gè)函數(shù),簡單的小代碼,大家參考使用吧2014-01-01Selenium webdriver添加cookie實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Selenium webdriver添加cookie實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Python數(shù)據(jù)可視化:餅狀圖的實(shí)例講解
今天小編就為大家分享一篇Python數(shù)據(jù)可視化:餅狀圖的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python字典添加,刪除,查詢等相關(guān)操作方法詳解
這篇文章主要介紹了Python字典添加,刪除,查詢等相關(guān)操作方法詳解,需要的朋友可以參考下2020-02-02Python實(shí)現(xiàn)數(shù)據(jù)庫編程方法詳解
這篇文章主要介紹了Python實(shí)現(xiàn)數(shù)據(jù)庫編程方法,較為詳細(xì)的總結(jié)了Python數(shù)據(jù)庫編程涉及的各種常用技巧與相關(guān)組件,需要的朋友可以參考下2015-06-06Python設(shè)計(jì)模式之享元模式原理與用法實(shí)例分析
這篇文章主要介紹了Python設(shè)計(jì)模式之享元模式原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了享元模式的相關(guān)概念、原理、定義及使用方法,需要的朋友可以參考下2019-01-01