python 深入分析iter函式

2021-09-26 15:40:24 字數 747 閱讀 9614

python中迭代物件x時會呼叫iter(x)

可是,iter函式還有乙個鮮為人知的用法:傳入兩個引數,使用常規的函式或任何可呼叫的物件建立迭代器。這樣使用時,第乙個引數必須是可呼叫的物件,用於不斷呼叫(沒有引數),產出各個值;第二個值是哨符,這是個標記值,當可呼叫的物件返回這個值時, 觸發迭代器丟擲stopiteration異常,而不產出哨符。

下述示例展示如何使用iter函式擲骰子,直到擲出1點為止:

注意,這裡的iter函式返回乙個callable_iterator物件。示例中的for迴圈可能執行特 別長的時間,不過肯定不會列印1,因為1是哨符。與常規的迭代器一樣,這個示例中的d6_iter物件一旦耗盡就沒用了。如果想重新開始,必須再次呼叫iter(...),重新構建迭 代器。

內建函式 `iter` 的文件:(

深入分析python 排序

排序是每個開發人員都需要掌握的技能。排序是對程式本身有乙個全面的理解。不同的排序演算法很好地展示了演算法設計上如何強烈的影響程式的複雜度 執行速度和效率。今天的文章和談談大家都熟悉的各種排序使用 python 如何實現,廢話就不多說啦,開幹!選擇排序 選擇排序一般是將初始值設為初始值,再迴圈後面每個...

IsPostBack深入分析

1 ispostback 介紹 ispostback是 page類有乙個 bool型別的屬性,用來判斷針對當前 form的請求是第一次還是非第一次請求。當 ispostback true時表示非第一次請求,我們稱為 postback,當 ispostback false時表示第一次請求。在 asp....

深入分析ConcurrentHashMap

再多執行緒的情況下,如果使用hashmap,就會導致死迴圈,導致cpu利用率接近100 所以如果是併發的情況不要使用hashmap 導致死迴圈主要是這段 當在多執行緒的情況由於沒有同步導致,著段 在擴容的時候會執行 do while e null 執行緒安全的hashtable 容器 hashtab...