Python for回圈可以遍歷任何序列的專案,如串列、字串、元組、字典、集合等序列型別,
語法:
for回圈的語法格式如下:
for iterating_var in sequence: statements(s)
流程圖:
animals="dog","cat","pig""bird" for animal in animals: print(animal)#for回圈中,print需要縮進
運行結果:
dog
cat
pig
bird
可以看到,使用 for 回圈的程序中,迭代變數會先后被賦值,并代入回圈體中使用,
Python for回圈的具體應用:
for 回圈進行數值回圈:
在使用 for 回圈時,最基本的應用就是進行數值回圈,
比如說,想要實作從 1 到 100 的累加,可以執行如下代碼:
print("計算 1+2+...+100 的結果為:")#保存累加結果的變數 result = 0 #逐個獲取從 1 到 100 這些值,并做累加操作 for i in range(101): result += i print(result)
運行結果為:
計算 1+2+...+100 的結果為:
5050
上面代碼中,使用了 range() 函式,此函式是 Python 內置函式,用于生成一系列連續整數,多用于 for 回圈中,
for回圈遍歷串列和元組
當用 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 回圈遍歷字典
在使用 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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231805.html
標籤:其他
