Python 里的 range 是干嘛使用的
一、range 是干嘛的?
range() 用來生成一個整數序列,常用于 for 循環(huán)。
for i in range(5):
print(i)
輸出:
0
1
2
3
4
二、三種用法
① 一個參數
range(stop)
表示:從 0 開始,到 stop 結束(不包含 stop)
range(5)
= 0,1,2,3,4
② 兩個參數
range(start, stop)
從 start 到 stop(不包含 stop)
range(2, 6)
= 2,3,4,5
③ 三個參數
range(start, stop, step)
step 是步長
range(0, 10, 2)
= 0,2,4,6,8
三、倒序寫法
range(10, 0, -1)
輸出:
10,9,8,7,6,5,4,3,2,1
? 注意:
- step 必須為負數
- stop 依然不包含
四、range 的重要特性(很多人不知道)
1?? 不是真正的列表
print(range(5))
輸出:
range(0, 5)
它是一個惰性對象(lazy object)
不會一次性生成所有數字,節(jié)省內存。
如果你要變成列表:
list(range(5))
2?? 占用內存極小
range(1000000000)
不會爆內存。
因為它只存:
- start
- stop
- step
五、常見用法
① 控制循環(huán)次數
for _ in range(10):
print("hello")
② 用索引遍歷列表(但不推薦)
nums = [10, 20, 30]
for i in range(len(nums)):
print(nums[i])更推薦:
for num in nums:
print(num)
③ 同時拿索引和值(推薦)
for i, value in enumerate(nums):
print(i, value)
六、常見坑
? 1. 不包含 stop
range(1, 5)
不是 1 到 5
是 1 到 4
? 2. 步長方向錯誤
range(5, 1)
結果是空!
因為默認 step = +1
正確寫法:
range(5, 1, -1)
七、面試??键c
Q:range 是列表嗎?
答:不是,是一個可迭代對象。
Q:range 占內存大嗎?
答:不會,它是惰性的。
八、進階小知識(Python 3)
range 支持:
5 in range(10) # True
因為它支持 O(1) 判斷,不會遍歷。
到此這篇關于Python 里的 range 是干嘛使用的的文章就介紹到這了,更多相關Python range使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
對python 數據處理中的LabelEncoder 和 OneHotEncoder詳解
今天小編就為大家分享一篇對python 數據處理中的LabelEncoder 和 OneHotEncoder詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python argparse中的action=store_true用法小結
這篇文章主要介紹了Python argparse中的action=store_true用法小結,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02

