Python for循環能夠遍歷任何序列的項目,如列表、字符串、元組、字典、集合等序列類型。java
語法:python
for循環的語法格式以下:shell
for iterating_var in sequence: statements(s)
流程圖:數據結構
animals="dog","cat","pig""bird" for animal in animals: print(animal)#for循環中,print須要縮進
運行結果:app
dog
cat
pig
bird
能夠看到,使用 for 循環的過程當中,迭代變量會前後被賦值,並代入循環體中使用。函數
在使用 for 循環時,最基本的應用就是進行數值循環。ui
好比說,想要實現從 1 到 100 的累加,能夠執行以下代碼:spa
print("計算 1+2+...+100 的結果爲:")#保存累加結果的變量 result = 0 #逐個獲取從 1 到 100 這些值,並作累加操做 for i in range(101): result += i print(result)
運行結果爲:code
計算 1+2+...+100 的結果爲:
5050
上面代碼中,使用了 range() 函數,此函數是 Python 內置函數,用於生成一系列連續整數,多用於 for 循環中。blog
當用 for 循環遍歷 list 列表或者 tuple 元組時,其迭代變量會前後被賦值爲列表或元組中的每一個元素並執行一次循環體。
下面程序使用 for 循環對列表進行了遍歷:
my_list = [1,2,3,4,5] for ele in my_list: print('ele =', ele)
程序執行結果爲:
ele = 1 ele = 2 ele = 3 ele = 4 ele = 5
在Python中,for循環迭代元組與序列差很少,下面程序使用 for 循環對元組進行了遍歷:
my_tuple = tuple("23333") print(my_tuple) #<<< ('2', '3', '3', '3', '3') for value in my_tuple: print(value)
程序執行結果以下:
3 2 3 3 3
注意:由於對於字符型的集合,輸出集合中的元素的時候,不會保存順序,因此集合中元素的順序一般是沒有定義的,與序列相同for word in words中的word標識符也是能夠隨意更改。
在使用 for 循環遍歷字典時,常常會用到和字典相關的 3 個方法,即 items()、keys() 以及 values(),若是使用 for 循環直接遍歷字典,則迭代變量會被前後賦值爲每一個鍵值對中的鍵。
my_dic = {'python':"1",\ 'shell':"2",\ 'java':"3"} for ele in my_dic: print('ele =', ele)
程序執行結果爲:
ele = python ele = shell ele = java
直接遍歷字典,和遍歷字典 keys() 方法的返回值是相同的。
循環迭代鍵:
d = {'x':1,'y':2,'z':3} for key in d.keys(): print(key)
除此以外,咱們還能夠遍歷字典 values()、items() 方法的返回值。例如:
循環迭代值:
d = {'x':1,'y':2,'z':3} for value in d.values(): print(value) my_dic = {'python':"1",\ 'shell':"2",\ 'java':"3"} for ele in my_dic.items(): print('ele =', ele)
d.items方法還能夠將鍵-值對做爲元組放回,for循環的一大好處就是能夠在循環中使用序列解包
程序執行結果爲:
ele = ('python', '1') ele = ('shell', '2') ele = ('java', '3')
元組轉換爲列表
fruits = ('apple','banana','orange') #元組轉換爲列表: list(fruit) #元組不能直接轉換爲字典,附: #元組轉換爲字符串: fruits.__str__()
列表轉換爲元組
fruit_list = ['apple','banana','orange'] #列表轉換爲元組: tuple(fruit_list) #列表不能直接轉換爲字典,附: #列表轉換爲字符串: str(fruit_list)
字典轉換爲元組
可使用函數 tuple() 和 list() 將字典轉換爲元組和列表,但要注意的是,這裏的轉換後和以前的元素順序是不一樣的,由於字典相似於散列,列表 相似於鏈表,元組相似於列表只是元素沒法改變,因此,要把散列轉換爲鏈表而順序不變是不可行的。但能夠藉助於有序字典OrderedDict,有序字典是字典的子類,它能夠記住元素添加的順序,從而獲得有序的字典。有序字典這裏就不深刻探討,給出普通字典的例子參考,代碼以下:
fruit_dict = {'apple':1, 'banana':2, 'orange':3} #將字典的key轉換爲元組: tuple(fruit_dict) #將字典的value轉換爲元組: tuple(fruit_dict.value()) #將字典的key轉換爲列表: list(fruit_dict) #將字典的value轉換爲列表: list(fruit_dict.value()) #附: #將字典轉換爲字符串: str(fruit_dict)
字符串轉換爲元組
要將字符串轉換爲指定的數據結構,那麼字符串就必須符合指定數據結構的格式,並藉助於 eval() 函數
#將字符串轉換爲元組: str = "(1,2,3)" tuple(eval(str)) #將字符串轉換爲列表: str = "(1,2,3)" list(eval(str)) #將字符串轉換爲字典: str = "{'a':1 ,'b',2}" eval(str)