日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的for语句是否只有一种写法_跟老齐学Python之for循环语句

發布時間:2025/3/19 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的for语句是否只有一种写法_跟老齐学Python之for循环语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

廢話少說,上干活。

for的基本操作

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

>>> name_str = "qiwsir"

>>> for i in name_str: #可以對str使用for循環

... 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: #對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

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

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

>>> 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]

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

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

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

請輸入圖片描述

用一個文字表述:

for iterating_var in sequence:

statements

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

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.

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

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

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

>>> a

'qiwsir'

>>> c

[1, 2, 3]

>>> zip(c)

[(1,), (2,), (3,)]

>>> zip(a)

[('q',), ('i',), ('w',), ('s',), ('i',), ('r',)]

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

>>> c

[1, 2, 3]

>>> d

[9, 8, 7, 6]

>>> for x,y in zip(c,d): #實現一對一對地打印

... print x,y

...

1 9

2 8

3 7

>>> for x,y in zip(c,d): #把兩個list中的對應量上下相加。

... print x+y

...

10

10

10

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

>>> length = len(c) if len(c)

>>> for i in range(length):

... print c[i]+d[i]

...

10

10

10

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

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

[10, 10, 10]

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

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

[10, 10, 10]

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

總結

以上是生活随笔為你收集整理的python的for语句是否只有一种写法_跟老齐学Python之for循环语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。