循环——批量处理数据
一、循環(huán)的意義
1、我們使用循環(huán)來(lái)做重復(fù)的事情,從而達(dá)到效率的提升。
2、在Python中有兩種類(lèi)型的循環(huán),第一種叫做for循環(huán)(for-loop),第二種叫做while循環(huán)(while-loop)。從實(shí)際使用上來(lái)說(shuō),while循環(huán)在Python開(kāi)發(fā)中并不常見(jiàn),需要使用while循環(huán)的地方我們也可以使用for循環(huán)來(lái)進(jìn)行模擬,從而達(dá)到同樣的效果。
3、for循環(huán)一般和批量的處理數(shù)據(jù)是分不開(kāi)的,for循環(huán)把一堆數(shù)據(jù)中的每一個(gè)都按照特定的規(guī)則進(jìn)行重復(fù)處理。
二、認(rèn)識(shí)循環(huán)
for i in [1,2,3]:print(i)?
1、在編程中,當(dāng)我們使用一個(gè)來(lái)自于集合體的東西, 并且它能夠一次次的被取出直至產(chǎn)生它的集合體被耗盡,那么 我們通常認(rèn)為這描述的是 【可迭代對(duì)象】(iterable)的特征,也就是我們所說(shuō)的一堆數(shù)據(jù)。
2、想要使用 for循環(huán),就一定需要一個(gè)可迭代對(duì)象作為被循環(huán)的主體。前面提到的容器類(lèi)型的數(shù)據(jù)全部都是可迭代的對(duì)象(光從名字就不難猜出),但是實(shí)際上在 Python 還有更多的可迭代對(duì)象,我們可以使用 iter() 函數(shù)來(lái)判斷是否是可迭代對(duì)象——作為參數(shù)放進(jìn)去不報(bào)錯(cuò),那說(shuō)明就是可迭代的,就可以被用于 for 循環(huán);如果報(bào)錯(cuò)了就不是可迭代的。
3、i 可以稱(chēng)為循環(huán)變量(loop variable)。
for i in container:do something(1)每一個(gè)數(shù)據(jù)在使用的時(shí)候會(huì)有名字(變量賦值)。
(2)每一個(gè)數(shù)據(jù)在被使用的時(shí)候都按照統(tǒng)一的名字(變量名)進(jìn)行操作。
(3)被操作完的數(shù)據(jù)就不再擁有這個(gè)名字,但最后一個(gè)元素除外(i=last)。
4、do something
我們對(duì)循環(huán)中數(shù)據(jù)的處理規(guī)則全部寫(xiě)在換行后的縮進(jìn)里面,無(wú)論是像是變量賦值或者還是調(diào)用函數(shù)在或者其他的事情,所有在縮進(jìn)里的代碼全部會(huì)被認(rèn)為是要在這一次循環(huán)中做的事情。循環(huán)會(huì)在可迭代對(duì)象中數(shù)據(jù)全部被訪問(wèn)過(guò)的時(shí)候停止,除非我們?cè)谶@之前使用另外的語(yǔ)句叫停。
三、循環(huán)的4個(gè)應(yīng)用場(chǎng)景
1、使用可迭代對(duì)象中的數(shù)據(jù)
在實(shí)際的開(kāi)發(fā)中,經(jīng)常會(huì)將容器中的數(shù)據(jù)全部作為原料使用。
比如像是發(fā)送消息給所有的用戶(hù)這樣的行為,這其中的批量處理是怎樣實(shí)現(xiàn)的呢?實(shí)際上是給一個(gè)相當(dāng)于【信息發(fā)送機(jī)】的函數(shù)批量的提供要發(fā)送的用戶(hù)名和內(nèi)容,從而實(shí)現(xiàn)循環(huán)調(diào)用函數(shù)。
users = ['Frank Zappa','Terry Bozzio','Adrian Bwlew' ] for user in users:# send_message(user,'Hello')print('hello,'+user)?
使用爬蟲(chóng)獲得每一個(gè)頁(yè)面的信息的時(shí)候,是一次打開(kāi)并保存列表中的每一個(gè)網(wǎng)址。
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、構(gòu)造/整理容器內(nèi)的數(shù)據(jù)
有時(shí)候容器里的數(shù)據(jù)本身是不規(guī)整的,或者是有一些不想要的數(shù)據(jù),這時(shí)候用循環(huán)就可以很方便的批量清洗數(shù)據(jù),把容器中的數(shù)據(jù)進(jìn)行過(guò)濾和重組之后再使用。
albums_list = ['reuion','lefttoverture','machine head' ] new_list = [] for album in albums_list:# capitalize()將字符串的第一個(gè)字母變成大寫(xiě),其他字母變小寫(xiě)。new_name = album.capitalize()new_list.append(new_name)print(new_list)?
3、嵌套多重循環(huán)
多重循環(huán)就是在循環(huán)中進(jìn)行循環(huán),這么做的原因是,有時(shí)候我們?cè)谕粫r(shí)間處理多個(gè)嵌套的數(shù)據(jù)結(jié)構(gòu),也就是可迭代對(duì)象中的每一個(gè)元素仍然是可迭代的,這種循環(huán)常見(jiàn)于數(shù)據(jù)庫(kù)類(lèi)型的對(duì)象中查詢(xún)或者是修改單位數(shù)據(jù)。
album = [['Good Times Bad Times',],['Your Time Is Gonna Come''Black Mountain Side'] ] for Side in album:for song in side:print(song)?
4、循環(huán)中的條件分支
將條件中的數(shù)據(jù)進(jìn)行分類(lèi)和篩選也是常見(jiàn)的一種操作行為,但是這不可避免的要使用到條件判斷語(yǔ)句作為分支的篩選器。
for + if?
四、總結(jié)
“把一堆數(shù)據(jù)中的每一個(gè)都按照特定的規(guī)則進(jìn)行重復(fù)處理。”
for i in container:do something1、使用可迭代對(duì)象中的數(shù)據(jù)
2、構(gòu)造/整理容器內(nèi)的數(shù)據(jù)
3、嵌套多重循環(huán)
4、循環(huán)中的條件分支
?
轉(zhuǎn)載于:https://www.cnblogs.com/Lamfai/p/9332225.html
總結(jié)
以上是生活随笔為你收集整理的循环——批量处理数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 水平居中布局与滚动条跳动的千年难题
- 下一篇: MWeb 的基本使用