【学习笔记】33、具有Python特色的循环
生活随笔
收集整理的這篇文章主要介紹了
【学习笔记】33、具有Python特色的循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
具有Python特色的循環
首先我們看一下下面這個代碼段,作用是循環輸出列表內容。
?
上面的代碼 段其實缺乏Python特色,首先代碼中手動跟蹤了索引(使用了變量“i”,初始為0,每次循環遞增1),其次使用len()函數獲取容器大小。
我們可以使用內置的range()自動生成索引range類型表示不可變的數列,內存占用比普通列表少,range對象實際上并不存儲數列的每個值,而是充當迭代器實時計算數列的值。
所以,上面的代碼段可以做如下重構。
?
?在Python中,for循環實績上是for-each循環,可以直接在容器或者序列中迭代元素,無需通過索引查找,那么,上面的代碼段還可以重構。
?
?上面的代碼不再跟蹤容器的大小,也不使用運行時索引來訪問元素。
那么如果需要用到項的索引,該怎么辦呢?
其實有一種方式既可以讓循環持有當前運行的索引,又能避免之前的range(len())模式,需要使用內置enumerate()迭代器改進,迭代器可以返回含有任意個元素的元組,然后再for語句內解包。
?
同樣可以使用enumerate()迭代字典的鍵和值。
?
要是循環必須要有步長呢?
如:for (int i = a; i < n;i += s){
// ...
這里還是可以用到上面講的range()函數,該函數接受可選參數來控制循環的起始值a,終止值n和步長值s。
?
?
?
總結
以上是生活随笔為你收集整理的【学习笔记】33、具有Python特色的循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】32、字符串格式化
- 下一篇: 【学习笔记】34、函数是Python的头