成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[零基礎(chǔ)學(xué)python]難以想象的for

lwx12525 / 393人閱讀

摘要:看這個(gè)標(biāo)題,有點(diǎn)匪夷所思嗎為什么是難以想象的呢因?yàn)樵谥?,它的確是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個(gè)被稱之為迭代的東西,在中就有點(diǎn)相形見(jiàn)絀了。然后將序列對(duì)應(yīng)的元素依次組成元組,做為一個(gè)的元素。

看這個(gè)標(biāo)題,有點(diǎn)匪夷所思嗎?為什么for是難以想象的呢?因?yàn)樵趐ython中,它的確是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個(gè)被稱之為迭代的東西,在python中就有點(diǎn)相形見(jiàn)絀了。在別的語(yǔ)言中,for的地位從來(lái)沒(méi)有如同python中這么高的。

廢話少說(shuō),上干活。

for的基本操作

for是用來(lái)循環(huán)的,是從某個(gè)對(duì)象那里依次將元素讀取出來(lái)??聪旅娴睦?,將已經(jīng)學(xué)習(xí)過(guò)的數(shù)據(jù)對(duì)象用for循環(huán)一下,看看哪些能夠使用,哪些不能使用。同時(shí)也是復(fù)習(xí)一下過(guò)往的內(nèi)容。

>>> name_str = "qiwsir"
>>> for i in name_str:  #可以對(duì)str使用for循環(huán)
...     print i,
...                     
q i w s i r

>>> name_list = list(name_str)
>>> name_list
["q", "i", "w", "s", "i", "r"]
>>> for i in name_list:     #對(duì)list也能用
...     print i,
... 
q i w s i r

>>> name_set = set(name_str)    #set還可以用
>>> name_set
set(["q", "i", "s", "r", "w"])
>>> for i in name_set:
...     print i,
... 
q i s r w

>>> name_tuple = tuple(name_str)
>>> name_tuple
("q", "i", "w", "s", "i", "r")
>>> for i in name_tuple:        #tuple也能呀
...     print i,
... 
q i w s i r

>>> name_dict={"name":"qiwsir","lang":"python","website":"qiwsir.github.io"}
>>> for i in name_dict:             #dict也不例外
...     print i,"-->",name_dict[i]
... 
lang --> python
website --> qiwsir.github.io
name --> qiwsir

除了上面的數(shù)據(jù)類型之外,對(duì)文件也能夠用for,這在前面有專門(mén)的《不要紅頭文件》兩篇文章講解有關(guān)如何用for來(lái)讀取文件對(duì)象的內(nèi)容??垂偃敉浟?,可去瀏覽。

for在list解析中,用途也不可小覷,這在講解list解析的時(shí)候,業(yè)已說(shuō)明,不過(guò),還是再?gòu)?fù)習(xí)一下為好,所謂學(xué)而時(shí)常復(fù)習(xí)之,不亦哈哈乎。

>>> one = range(1,9)         
>>> one
[1, 2, 3, 4, 5, 6, 7, 8]
>>> [ x for x in one if x%2==0 ]
[2, 4, 6, 8]

什么也不說(shuō)了,list解析的強(qiáng)悍,在以后的學(xué)習(xí)中會(huì)越來(lái)越體會(huì)到的,佩服佩服呀。

列位如果用python3,會(huì)發(fā)現(xiàn)字典解析、元組解析也是奇妙的呀。

要上升一個(gè)檔次,就得進(jìn)行概括。將上面所說(shuō)的for循環(huán),概括一下,就是下圖所示:

用一個(gè)文字表述:

for iterating_var in sequence:
    statements

iterating_var是對(duì)象sequence的迭代變量,也就是sequence必須是一個(gè)能夠有某種序列的對(duì)象,特別注意沒(méi)某種序列,就是說(shuō)能夠按照一定的腳標(biāo)獲取元素。當(dāng)然,文件對(duì)象屬于序列,我們沒(méi)有用腳標(biāo)去獲取每行,如果把它讀取出來(lái),因?yàn)橐彩且粋€(gè)str,所以依然可以用腳標(biāo)讀取其內(nèi)容。

zip

zip是什么東西?在交互模式下用help(zip),得到官方文檔是:

  

zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]

  

Return a list of tuples, where each tuple contains the i-th element from each of the argument sequences. The returned list is truncated in length to the length of the shortest argument sequence.

通過(guò)實(shí)驗(yàn)來(lái)理解上面的文檔:

>>> a = "qiwsir"
>>> b = "github"
>>> zip(a,b)
[("q", "g"), ("i", "i"), ("w", "t"), ("s", "h"), ("i", "u"), ("r", "b")]
>>> c = [1,2,3]
>>> d = [9,8,7,6]
>>> zip(c,d)
[(1, 9), (2, 8), (3, 7)]
>>> e = (1,2,3)
>>> f = (9,8)
>>> zip(e,f)
[(1, 9), (2, 8)]

>>> m = {"name","lang"}  
>>> n = {"qiwsir","python"}
>>> zip(m,n)
[("lang", "python"), ("name", "qiwsir")]
>>> s = {"name":"qiwsir"}
>>> t = {"lang":"python"}
>>> zip(s,t)
[("name", "lang")]

zip是一個(gè)內(nèi)置函數(shù),它的參數(shù)必須是某種序列數(shù)據(jù)類型,如果是字典,那么鍵視為序列。然后將序列對(duì)應(yīng)的元素依次組成元組,做為一個(gè)list的元素。

下面是比較特殊的情況,參數(shù)是一個(gè)序列數(shù)據(jù)的時(shí)候,生成的結(jié)果樣子:

>>> a  
"qiwsir"
>>> c  
[1, 2, 3]
>>> zip(c)
[(1,), (2,), (3,)]
>>> zip(a)
[("q",), ("i",), ("w",), ("s",), ("i",), ("r",)]

這個(gè)函數(shù)和for連用,就是實(shí)現(xiàn)了:

>>> c
[1, 2, 3]
>>> d
[9, 8, 7, 6]
>>> for x,y in zip(c,d):    #實(shí)現(xiàn)一對(duì)一對(duì)地打印
...     print x,y
... 
1 9
2 8
3 7
>>> for x,y in zip(c,d):    #把兩個(gè)list中的對(duì)應(yīng)量上下相加。
...     print x+y
... 
10
10
10

上面這個(gè)相加的功能,如果不用zip,還可以這么寫(xiě):

>>> length = len(c) if len(c)>> for i in range(length):
...     print c[i]+d[i]
... 
10
10
10

以上兩種寫(xiě)法那個(gè)更好呢?前者?后者?哈哈。我看差不多了。還可以這么做呢:

>>> [ x+y for x,y in zip(c,d) ]
[10, 10, 10]

前面多次說(shuō)了,list解析強(qiáng)悍呀。當(dāng)然,還可以這樣的:

>>> [ c[i]+d[i] for i in range(length) ]
[10, 10, 10]

for循環(huán)語(yǔ)句在后面還會(huì)經(jīng)常用到,其實(shí)前面已經(jīng)用了很多了。所以,看官應(yīng)該不感到太陌生。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37373.html

相關(guān)文章

  • [基礎(chǔ)學(xué)python]關(guān)于循環(huán)小伎倆

    摘要:不管是還是,所發(fā)起的循環(huán),在編程中是經(jīng)常被用到的。這里重點(diǎn)是復(fù)習(xí)并展示一下它的循環(huán)中,做為計(jì)數(shù)器的使用。通過(guò)上述實(shí)例,主要是讓看官理解在循環(huán)中計(jì)數(shù)器的作用。是用于并行遍歷的函數(shù)。一種方法是通過(guò)循環(huán),分別從兩個(gè)中取出元素,然后求和。 不管是while還是for,所發(fā)起的循環(huán),在python編程中是經(jīng)常被用到的。特別是for,一般認(rèn)為,它要比while快,而且也容易寫(xiě)(是否容易,可能因人而...

    李世贊 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)python]用while來(lái)循環(huán)

    摘要:我在這里將他寫(xiě)的程序恭錄于此,單元李航同學(xué)不要見(jiàn)怪,如果李航同學(xué)認(rèn)為此舉侵犯了自己的知識(shí)產(chǎn)權(quán),可以告知我,我馬上撤下此代碼。我用的是,在輸入指令上區(qū)別于李同學(xué)程序用變量接收了輸入的內(nèi)容。 while,翻譯成中文是當(dāng)...的時(shí)候,這個(gè)單詞在英語(yǔ)中,常常用來(lái)做為時(shí)間狀語(yǔ),while ... someone do somthing,這種類型的說(shuō)法是有的。在python中,它也有這個(gè)含義,不過(guò)...

    Tony 評(píng)論0 收藏0
  • 30歲基礎(chǔ)學(xué)編程,先學(xué)哪種語(yǔ)言最好?

    摘要:大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。那怎么辦,試著學(xué)一學(xué)唄,學(xué)習(xí)才是程序猿的天性。所以我在想程序猿是不是都需要新知識(shí)刺激一下,才能保持興奮的頭腦。有句話說(shuō)的很對(duì)程序猿就像好奇的貓,追著毛球的線頭玩,最后一個(gè)毛球在腦袋里攪漿糊。 說(shuō)說(shuō)我自己的經(jīng)歷。211大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。 畢業(yè)后進(jìn)了成都某國(guó)字頭研究所,在行業(yè)里摸爬滾打了四年,2018年機(jī)緣巧合在家養(yǎng)...

    xietao3 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)Python]深入變量和引用對(duì)象

    摘要:為所有在災(zāi)難中受傷害的人們獻(xiàn)上禱告。變量就是存在系統(tǒng)中的一個(gè)東西,這個(gè)東西有一種能力,能夠用一根線與某對(duì)象連接,它能夠釣魚(yú)。這個(gè)操作中,和兩個(gè)變量,引用的是一個(gè)對(duì)象,都是。所以,當(dāng)通過(guò)修改引用對(duì)象的后,沒(méi)有變化。 今天是2014年8月4日,這段時(shí)間災(zāi)禍接連發(fā)生,顯示不久前昆山的工廠爆炸,死傷不少,然后是云南地震,也有死傷。為所有在災(zāi)難中受傷害的人們獻(xiàn)上禱告。 在《永遠(yuǎn)強(qiáng)大的函數(shù)》那一...

    yagami 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)Python]再深點(diǎn),更懂list

    摘要:有的前面有空格,有的后面有空格去掉元素前后的空格這是一個(gè)有意思的內(nèi)置函數(shù),本來(lái)我們可以通過(guò)的方式得到一個(gè)的每個(gè)元素編號(hào),然后在用的方式得到該元素。 對(duì)于list,由于她的確非常非常龐雜,在python中應(yīng)用非常廣泛,所以,雖然已經(jīng)介紹完畢了基礎(chǔ)內(nèi)容,這里還要用一講深入一點(diǎn)點(diǎn),往往越深入越... list解析 先看下面的例子,這個(gè)例子是想得到1到9的每個(gè)整數(shù)的平方,并且將結(jié)果放在li...

    mdluo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<