国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[零基礎學python]難以想象的for

lwx12525 / 387人閱讀

摘要:看這個標題,有點匪夷所思嗎為什么是難以想象的呢因為在中,它的確是很常用而且很強悍,強悍到以至于另外一個被稱之為迭代的東西,在中就有點相形見絀了。然后將序列對應的元素依次組成元組,做為一個的元素。

看這個標題,有點匪夷所思嗎?為什么for是難以想象的呢?因為在python中,它的確是很常用而且很強悍,強悍到以至于另外一個被稱之為迭代的東西,在python中就有點相形見絀了。在別的語言中,for的地位從來沒有如同python中這么高的。

廢話少說,上干活。

for的基本操作

for是用來循環的,是從某個對象那里依次將元素讀取出來。看下面的例子,將已經學習過的數據對象用for循環一下,看看哪些能夠使用,哪些不能使用。同時也是復習一下過往的內容。

</>復制代碼

  1. >>> name_str = "qiwsir"
  2. >>> for i in name_str: #可以對str使用for循環
  3. ... print i,
  4. ...
  5. q i w s i r
  6. >>> name_list = list(name_str)
  7. >>> name_list
  8. ["q", "i", "w", "s", "i", "r"]
  9. >>> for i in name_list: #對list也能用
  10. ... print i,
  11. ...
  12. q i w s i r
  13. >>> name_set = set(name_str) #set還可以用
  14. >>> name_set
  15. set(["q", "i", "s", "r", "w"])
  16. >>> for i in name_set:
  17. ... print i,
  18. ...
  19. q i s r w
  20. >>> name_tuple = tuple(name_str)
  21. >>> name_tuple
  22. ("q", "i", "w", "s", "i", "r")
  23. >>> for i in name_tuple: #tuple也能呀
  24. ... print i,
  25. ...
  26. q i w s i r
  27. >>> name_dict={"name":"qiwsir","lang":"python","website":"qiwsir.github.io"}
  28. >>> for i in name_dict: #dict也不例外
  29. ... print i,"-->",name_dict[i]
  30. ...
  31. lang --> python
  32. website --> qiwsir.github.io
  33. name --> qiwsir

除了上面的數據類型之外,對文件也能夠用for,這在前面有專門的《不要紅頭文件》兩篇文章講解有關如何用for來讀取文件對象的內容。看官若忘記了,可去瀏覽。

for在list解析中,用途也不可小覷,這在講解list解析的時候,業已說明,不過,還是再復習一下為好,所謂學而時常復習之,不亦哈哈乎。

</>復制代碼

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

什么也不說了,list解析的強悍,在以后的學習中會越來越體會到的,佩服佩服呀。

列位如果用python3,會發現字典解析、元組解析也是奇妙的呀。

要上升一個檔次,就得進行概括。將上面所說的for循環,概括一下,就是下圖所示:

用一個文字表述:

</>復制代碼

  1. for iterating_var in sequence:
  2. statements

iterating_var是對象sequence的迭代變量,也就是sequence必須是一個能夠有某種序列的對象,特別注意沒某種序列,就是說能夠按照一定的腳標獲取元素。當然,文件對象屬于序列,我們沒有用腳標去獲取每行,如果把它讀取出來,因為也是一個str,所以依然可以用腳標讀取其內容。

zip

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

</>復制代碼

  1. zip(...)

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

</>復制代碼

  1. 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.

通過實驗來理解上面的文檔:

</>復制代碼

  1. >>> a = "qiwsir"
  2. >>> b = "github"
  3. >>> zip(a,b)
  4. [("q", "g"), ("i", "i"), ("w", "t"), ("s", "h"), ("i", "u"), ("r", "b")]
  5. >>> c = [1,2,3]
  6. >>> d = [9,8,7,6]
  7. >>> zip(c,d)
  8. [(1, 9), (2, 8), (3, 7)]
  9. >>> e = (1,2,3)
  10. >>> f = (9,8)
  11. >>> zip(e,f)
  12. [(1, 9), (2, 8)]
  13. >>> m = {"name","lang"}
  14. >>> n = {"qiwsir","python"}
  15. >>> zip(m,n)
  16. [("lang", "python"), ("name", "qiwsir")]
  17. >>> s = {"name":"qiwsir"}
  18. >>> t = {"lang":"python"}
  19. >>> zip(s,t)
  20. [("name", "lang")]

zip是一個內置函數,它的參數必須是某種序列數據類型,如果是字典,那么鍵視為序列。然后將序列對應的元素依次組成元組,做為一個list的元素。

下面是比較特殊的情況,參數是一個序列數據的時候,生成的結果樣子:

</>復制代碼

  1. >>> a
  2. "qiwsir"
  3. >>> c
  4. [1, 2, 3]
  5. >>> zip(c)
  6. [(1,), (2,), (3,)]
  7. >>> zip(a)
  8. [("q",), ("i",), ("w",), ("s",), ("i",), ("r",)]

這個函數和for連用,就是實現了:

</>復制代碼

  1. >>> c
  2. [1, 2, 3]
  3. >>> d
  4. [9, 8, 7, 6]
  5. >>> for x,y in zip(c,d): #實現一對一對地打印
  6. ... print x,y
  7. ...
  8. 1 9
  9. 2 8
  10. 3 7
  11. >>> for x,y in zip(c,d): #把兩個list中的對應量上下相加。
  12. ... print x+y
  13. ...
  14. 10
  15. 10
  16. 10

上面這個相加的功能,如果不用zip,還可以這么寫:

</>復制代碼

  1. >>> length = len(c) if len(c)>> for i in range(length):
  2. ... print c[i]+d[i]
  3. ...
  4. 10
  5. 10
  6. 10

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

</>復制代碼

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

前面多次說了,list解析強悍呀。當然,還可以這樣的:

</>復制代碼

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

for循環語句在后面還會經常用到,其實前面已經用了很多了。所以,看官應該不感到太陌生。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37373.html

相關文章

  • [基礎python]關于循環小伎倆

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

    李世贊 評論0 收藏0
  • [基礎python]用while來循環

    摘要:我在這里將他寫的程序恭錄于此,單元李航同學不要見怪,如果李航同學認為此舉侵犯了自己的知識產權,可以告知我,我馬上撤下此代碼。我用的是,在輸入指令上區別于李同學程序用變量接收了輸入的內容。 while,翻譯成中文是當...的時候,這個單詞在英語中,常常用來做為時間狀語,while ... someone do somthing,這種類型的說法是有的。在python中,它也有這個含義,不過...

    Tony 評論0 收藏0
  • 30歲基礎編程,先哪種語言最好?

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

    xietao3 評論0 收藏0
  • [基礎Python]深入變量和引用對象

    摘要:為所有在災難中受傷害的人們獻上禱告。變量就是存在系統中的一個東西,這個東西有一種能力,能夠用一根線與某對象連接,它能夠釣魚。這個操作中,和兩個變量,引用的是一個對象,都是。所以,當通過修改引用對象的后,沒有變化。 今天是2014年8月4日,這段時間災禍接連發生,顯示不久前昆山的工廠爆炸,死傷不少,然后是云南地震,也有死傷。為所有在災難中受傷害的人們獻上禱告。 在《永遠強大的函數》那一...

    yagami 評論0 收藏0
  • [基礎Python]再深點,更懂list

    摘要:有的前面有空格,有的后面有空格去掉元素前后的空格這是一個有意思的內置函數,本來我們可以通過的方式得到一個的每個元素編號,然后在用的方式得到該元素。 對于list,由于她的確非常非常龐雜,在python中應用非常廣泛,所以,雖然已經介紹完畢了基礎內容,這里還要用一講深入一點點,往往越深入越... list解析 先看下面的例子,這個例子是想得到1到9的每個整數的平方,并且將結果放在li...

    mdluo 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<