020003_循環——批量處理數據
一、循環的意義
1、我們使用循環來做重復的事情,從而達到效率的提升。
2、在Python中有兩種類型的循環,第一種叫做for循環(for-loop),第二種叫做while循環(while-loop)。從實際使用上來說,while循環在Python開發中並不常見,需要使用while循環的地方我們也可以使用for循環來進行模擬,從而達到同樣的效果。
3、for循環一般和批量的處理數據是分不開的,for循環把一堆數據中的每一個都按照特定的規則進行重復處理。
二、認識循環
for i in [1,2,3]:
print(i)
1、在編程中,當我們使用一個來自於集合體的東西, 並且它能夠一次次的被取出直至產生它的集合體被耗盡,那麽 我們通常認為這描述的是 【可叠代對象】(iterable)的特征,也就是我們所說的一堆數據。
2、想要使用 for循環,就一定需要一個可叠代對象作為被循環的主體。前面提到的容器類型的數據全部都是可叠代的對象(光從名字就不難猜出),但是實際上在 Python 還有更多的可叠代對象,我們可以使用 iter() 函數來判斷是否是可叠代對象——作為參數放進去不報錯,那說明就是可叠代的,就可以被用於 for 循環;如果報錯了就不是可叠代的。
3、i 可以稱為循環變量(loop variable)。
for i in container:
do something
(1)每一個數據在使用的時候會有名字(變量賦值)。
(2)每一個數據在被使用的時候都按照統一的名字(變量名)進行操作。
(3)被操作完的數據就不再擁有這個名字,但最後一個元素除外(i=last)。
4、do something
我們對循環中數據的處理規則全部寫在換行後的縮進裏面,無論是像是變量賦值或者還是調用函數在或者其他的事情,所有在縮進裏的代碼全部會被認為是要在這一次循環中做的事情。循環會在可叠代對象中數據全部被訪問過的時候停止,除非我們在這之前使用另外的語句叫停。
三、循環的4個應用場景
1、使用可叠代對象中的數據
在實際的開發中,經常會將容器中的數據全部作為原料使用。
比如像是發送消息給所有的用戶這樣的行為,這其中的批量處理是怎樣實現的呢?實際上是給一個相當於【信息發送機】的函數批量的提供要發送的用戶名和內容,從而實現循環調用函數。
users = [
‘Frank Zappa‘,
‘Terry Bozzio‘,
‘Adrian Bwlew‘
]
for user in users:
# send_message(user,‘Hello‘)
print(‘hello,‘+user)
使用爬蟲獲得每一個頁面的信息的時候,是一次打開並保存列表中的每一個網址。
urls = [
‘www.a.com‘,
‘www.b.com‘,
‘www.c.com‘
]
for url in urls:
full_url = ‘http://‘+url
# web = open(full_url)
# web.save()
print(full_url)
2、構造/整理容器內的數據
有時候容器裏的數據本身是不規整的,或者是有一些不想要的數據,這時候用循環就可以很方便的批量清洗數據,把容器中的數據進行過濾和重組之後再使用。
albums_list = [
‘reuion‘,
‘lefttoverture‘,
‘machine head‘
]
new_list = []
for album in albums_list:
# capitalize()將字符串的第一個字母變成大寫,其他字母變小寫。
new_name = album.capitalize()
new_list.append(new_name)
print(new_list)
3、嵌套多重循環
多重循環就是在循環中進行循環,這麽做的原因是,有時候我們在同一時間處理多個嵌套的數據結構,也就是可叠代對象中的每一個元素仍然是可叠代的,這種循環常見於數據庫類型的對象中查詢或者是修改單位數據。
album = [
[
‘Good Times Bad Times‘,
],
[
‘Your Time Is Gonna Come‘
‘Black Mountain Side‘
]
]
for Side in album:
for song in side:
print(song)
4、循環中的條件分支
將條件中的數據進行分類和篩選也是常見的一種操作行為,但是這不可避免的要使用到條件判斷語句作為分支的篩選器。
for + if
四、總結
“把一堆數據中的每一個都按照特定的規則進行重復處理。”
for i in container:
do something
1、使用可叠代對象中的數據
2、構造/整理容器內的數據
3、嵌套多重循環
4、循環中的條件分支
020003_循環——批量處理數據