1. 程式人生 > >Python3快速入門——(7)迭代(iterable)和迭代器

Python3快速入門——(7)迭代(iterable)和迭代器

迭代(iterable)#任何可迭代物件都可以作用於for迴圈,包括我們自定義的資料型別,只要符合迭代條件,就可以使用for迴圈d = {'a': 1, 'b': 2, 'c': 3} #對dict迭代for k,v in d.items(): # 如果要同時迭代key和value,可以用for k, v in d.items()print(k,v)#預設情況下,dict迭代的是key # 如果要迭代value,可以用for value in d.values()#字串也是可迭代物件,因此,也可以作用於for迴圈#如何判斷一個物件是可迭代物件呢?方法是通過collections模組的Iterable型別判斷
from collections import Iterable #匯入collections模組的Iterable型別n=isinstance(d,Iterable)print(n) #結果為True,可迭代#Python內建的enumerate函式可以把一個list變成索引-元素對,這樣就可以在for迴圈中同時迭代索引和元素本身names=['a','b','c','d']for i,value in enumerate(names): #for迴圈同時引用兩個變數print(i,value)for x,y in [(1,2),(3,5),(5,6)]:
##for迴圈同時引用兩個變數print(x,y)迭代器可以直接作用於for迴圈的資料型別有以下幾種:一類是集合資料型別,如listtupledictsetstr等;一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件:Iterable#可以使用isinstance()判斷一個物件是否是Iterable物件from collections import Iterablem=isinstance([],Iterable) #True#而生成器不但可以作用於for迴圈,還可以被next()函式不斷呼叫並返回下一個值,
# 直到最後丟擲StopIteration錯誤表示無法繼續返回下一個值了。#可以被next()函式呼叫並不斷返回下一個值的物件稱為迭代器:Iterator#生成器都是Iterator物件,但list、dict、str雖然是Iterable,卻不是Iterator。#把list、dict、str等Iterable變成Iterator可以使用iter()函式from collections import Iteratorm=isinstance(iter('abc'),Iterator) #True凡是可作用於for迴圈的物件都是Iterable型別;凡是可作用於next()函式的物件都是Iterator型別,它們表示一個惰性計算的序列;集合資料型別如listdictstr等是Iterable但不是Iterator,不過可以通過iter()函式獲得一個Iterator物件。Python的for迴圈本質上就是通過不斷呼叫next()函式實現的


相關推薦

Python3快速入門——7iterable

迭代(iterable)#任何可迭代物件都可以作用於for迴圈,包括我們自定義的資料型別,只要符合迭代條件,就可以使用for迴圈d = {'a': 1, 'b': 2, 'c': 3} #對dict迭

Python3快速入門——1python變數輸入輸出函式

1、Python語言Python 是一種解釋型、面向物件、動態資料型別的高階程式設計語言Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似於PHP和Perl語言。Python

Python3快速入門——3dict字典結構

#先回憶下列表的操作animals=["cat","dog","rabbit"] #找到list中的某個值(第一種方法)for animal in animals: if(ani

Python3快速入門——8列表生成式list comprehension

列表生成式(list comprehension)lis=list(range(1,11)) #lis=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]lis=list(range(10

Python3快速入門——Python簡介

flow 進入 park 調用 python腳本 混合 代碼編輯器 啟動 follow Python3快速入門(一)——Python簡介 一、Python簡介 1、Python簡介 Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言,由荷蘭Guido van

Angular2快速入門-3.多個組件分離新聞列表頁詳細頁

中新 table ref date 入門 log sta ble row 上篇(Angular2快速入門-2.創建一個新聞列表)已經完成新聞列表的展示,並且點擊新聞列表的時候,下面可以展示出新聞的詳細信息,這節我們把新聞詳細和新聞列表頁面分離出來 新聞詳細單獨一個comp

【第一篇】ASP.NET MVC快速入門之數據庫操作MVC5+EF6

c項目 教程 建數據庫 因此 F5 ctr 文件頭部 lec 跨站請求偽造 目錄 【第一篇】ASP.NET MVC快速入門之數據庫操作(MVC5+EF6) 【第二篇】ASP.NET MVC快速入門之數據註解(MVC5+EF6) 【第三篇】ASP.NET MVC快速入門之安全

python入門習題——7,反轉整數簡單

給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 1: 輸入: 123 輸出: 321  示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們的環境只能儲存 32 位有符號整數,其數

入門JVM堆記憶體相關的啟動引數:年輕、老年代永久的記憶體分配

如果想觀察JVM程序佔用的堆記憶體,可以通過命令工具jmap或者視覺化工具jvisualvm.exe。JVM這些啟動引數都擁有預設值,如果想了解JVM的記憶體分配策略,最好手動設定這些啟動引數。再通過

華為IP基礎快速入門-P6-IP路由選擇原理

主機路由172.16.1.1/32,(32位的為主機路由) 172.16.1.0/24(子網路由) 彙總路由上節課講過了,標識一組子網 主類網路號,比如172.16.1.0/24是172.16.0.0/16的子網,16就是24的主類網路號 又比如,10.0.0.0/8是10.1.1.0/

Retrofit2快速入門使用及檔案上傳單上傳、多上傳

前言 在開發專案中經常會遇到上傳頭像的問題,那我們如果使用Retrofit做網路請求時,如何進行使用,在文章的最後有最清晰的使用方法 Retrofit可以認為是Okhttp的 “升級版”,為什麼這麼說?那是因為其內部預設是基於OkHttp來進行

【Netty整理01-快速入門】Netty簡單使用Demo已驗證

多處摘抄或手打,為了十積分厚著臉皮標為原創,慚愧慚愧~本篇文章用於快速入門搭建一個簡單的netty 應用,如想稍微深入系統的瞭解,請參照本人下一篇部落格,連結: 參考地址: 官方文件:http://netty.io/wiki/user-guide-for-4.x.h

幹貨分享微服務spring-cloud7.配置中心spring-cloud-config

啟動 style 賬號 分享圖片 地址 config 分布式 efault 沒有 Spring Cloud Config為分布式系統中的外部配置提供服務器和客戶端支持。使用Config Server,您可以在所有環境中管理應用程序的外部屬性。客戶端和服務器上的概念映射與Sp

線性表的合併已知兩個集合AB,現要求一個新的集合A=A∪B。例如,設A=7,5,3,11,B=2,6,3,合併後A=7,5,3,11,2,6

#include<iostream> using namespace std; #define MAXSIZE 100 #define OK 1 #define ERROR -1 #define OVERFLOW -2 #define  MAXSIZE 100 &n

Spark2.x 快速入門教程 7

Spark Streaming 整合 Kafka 一、實驗介紹 1.1 實驗內容 Kafka是一個分散式的釋出-訂閱式的訊息系統,可以作為 DStream 的高階資料來源,本部分以單擊統計為例介紹 Spark Streaming 程式從 kafka 中消費資料,包括

python3快速入門教程錯誤異常

Python 中(至少)有兩種錯誤:語法錯誤(syntax errors)和異常(exceptions)。 語法錯誤 語法錯誤又稱作解析錯誤: >>> while True print('Hello world') File "<stdin>", line 1 wh

plinkpscp命令使用登錄linux並執行命令/linuxWindows服務文件互拷

htm putty -s ofo cin bat文件 windows 是把 use 1. 使用Putty提供的plink.exe來自動登陸一個機器並執行命令,完成後自己關閉 bat文件內容如下: D:\Download\Software\Putty-0.60\pli

python3.6入門到高階(全棧) day020 多繼承,MROC3演算法

今日主要內容 1. 多繼承 繼承: x是一種y的時候.可以使用繼承關係. "is a" 一個類同時繼承多個類(python, c++) 孫悟空是一種猴子, 還是一種神仙 例 class ShenXian: # 神仙 def fe

day06.Hadoop快速入門&雲服務三種模式IaaS,PaaSSaaS【大資料教程】

day06.Hadoop快速入門&雲服務三種模式IaaS,PaaS和SaaS【大資料教程】1. HADOOP背景介紹1.1 什麼是HADOOP1). HADOOP是apache旗下的一套開源軟體