成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用 Python 的 for 循環

譯文
開發 后端
Python 中的 for 循環構造可以輕松地迭代一組項目。本文詳細的介紹了如何更好的使用for 循環,并實現自己的操作。

 [[412405]]

【51CTO.com快譯】在Python中創建循環時,通常有兩個選擇:while循環和for循環。while很簡單:它只是重復,直到給定的條件不再成立。for循環比較復雜,因而功能更強大:for循環語句集合中遍歷,而不必知道集合的詳細信息。

Python for 循環組件

Python for循環有兩個組件:
    • 包含或產生要循環的元素的容器、序列或生成器。一般來說,任何支持 Python迭代器協議的對象都可以在for循環中使用。
    • 保存容器/序列/生成器中每個元素的變量。
在下面的例子中,我們循環遍歷一個數字列表,并使用變量digit依次保存每個數字:

  1. for digit in [3,1,4,1,5,9]: 
  2.     print (digit) 

這將打印:

  1. 3 1 4 1 5 9 

如果要遍歷生成容器或序列的對象,可以使用 Python 的多重賦值語法將其解包。例如:

  1. for letter, number in [["a",1],["b",2]]: 
  2.     print (letter, number)  

輸出:

  1. 1  
  2. 2 

常見的 Python for 循環

以下是 Python for 循環中使用的一些常見對象:

列表

上面的例子展示了如何使用for循環迭代列表。請注意,如果您有一個列表,則for循環提取的每個元素本身就是一個列表。for循環不會自動“展平”任何類型的嵌套結構。

字符串

Python 中的字符串被認為是“序列”——它們可以被迭代,迭代字符串的結果是字符串中的每個字符。

  1. for letter in "Hello world"
  2.     print (letter)    

這將產生:

  1.  

字典

使用for循環遍歷字典會生成字典中的每個鍵。

  1. d1 = { 
  2.     "a"1
  3.     "b"2 
  4. for key in d1: 
  5.     print (key)  

這將產生:

如果要遍歷字典的值,請使用字典的.values()方法。還可以使用.items()一起遍歷鍵和值:

  1. d1 = { 
  2.     "a"1
  3.     "b"2 
  4. for key, value in d1.items(): 
  5.     print (key, value) 

這將產生:

  1. 1  
  2. 2 

生成器

生成器生成一系列的項,每次調用一個項。for循環中使用的生成器的一個常見示例是range。

  1. for n in range(50): 
  2.     print (n)    

這將打印數字 0 到 49。

請注意,僅僅因為可以在for循環中使用生成器,并不意味著生成器最終會自行停止。例如,這個for循環將永遠運行:

  1. def forever(): 
  2.     while True
  3.         yield 1 
  4. for n in forever(): 
  5.     print (n)    

在這種情況下,需要采取措施確保循環可以終止。(參見下面的“流量控制”。)

在Python for循環中使用索引和枚舉

從 C、C++ 或 Java 等語言來到 Python 的開發人員通常會創建一個索引變量,用于逐步遍歷正在迭代的對象。舉個例子:

  1. x =[ 3 , 1 , 4 , 1 , 5 , 9 ]  
  2. n = 0而n < len ( x ): print ( x [ n ])  
  3.     n += 1  

這本身并沒有錯,但它忽略了 Python 的工作原理。Python 中的for循環不需要索引;它可以只遍歷要迭代的對象,而無需對其進行索引。

但是,有時需要在循環時跟蹤正在處理的元素。Python 的enumerate()實用程序對此有所幫助。它需要一個可迭代對象,并在每次迭代時生成索引和該索引處的對象的元組:

  1. x = [3,1,4,1,5,9
  2. for index, n in enumerate(x): 
  3. print (index, n) 
  1. 0 3 
  2. 1 1 
  3. 2 4  
  4. 3 1 
  5. 4 5 
  6. 5 9 

Python for 循環中的流量控制

for循環并不總是運行到完成,或完全按順序運行。假如想提前跳出一個for循環,或者跳過循環中的某個項。為此,Python提供了兩個關鍵字:break和continue。

  1. for n in range(20): 
  2.     if n % 2 == 0# if n is a multiple of 2 
  3.         continue   # then skip it 
  4.     # everything after this point is not run 
  5.     # if `continue` is invoked 
  6.     print (n) 
  7. print ("Done")  

這將產生1 3 5 7 9 11 13 15 17 19,然后Done。請注意,當循環結束時,程序在print(“Done”)處正常繼續。

  1. for n in range ( 20 ): if n == 10 : break # 完全離開循環print ( n ) print ( "Done" ) 

打印數字0到9,然后Done。

請注意,如果循環嵌套在其他循環中,break則只會影響當前循環——它不會從所有循環級別退出。從多個for循環中退出需要不同的機制,如sentinel變量:

  1. done = False 
  2. for n in range(20): 
  3.     for m in range(40): 
  4.         if n==10 and m==10
  5.             done = True 
  6.         if done: break 
  7.     if done: break     

Python for 循環陷阱

在for循環中迭代對象的元素時,不要做任何會改變成員或序列長度的事情。例如,如果要在一個列表上迭代,則不要在迭代時從列表中添加或刪除元素。

如果迭代元素的原因是測試每個元素以查看是否需要添加或刪除某些內容,那么有一個更好的解決方案。創建一個新的空容器,僅用要保留的元素填充它,然后用新容器替換舊容器。

下面是一個帶有列表的示例。這將創建一個只包含奇數的新列表: 

  1. old_list = [1,2,3,4,5,6
  2. new_list = [] 
  3. for n in old_list: 
  4.     if n % 2
  5.         new_list.append(n) 
  6. old_list = new_list  

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:梁菲 來源: InfoWorld
相關推薦

2020-04-09 10:18:51

Bash循環Linux

2010-03-11 14:15:24

Python循環

2024-05-10 14:46:27

Pythonfor循環

2022-07-28 09:16:42

JMeter接口

2022-03-11 14:59:21

JavaScript數組字符串

2010-03-09 14:10:13

Python循環語句

2023-02-25 16:33:12

Luawhile

2010-02-03 15:40:37

Python函數

2020-01-03 10:50:16

Python編程語言Mac電腦

2020-02-21 08:00:00

Pythonasyncio編程語言

2023-01-06 23:21:45

python中替換循環

2016-09-06 21:23:25

JavaScriptnode異步

2010-09-08 17:15:45

SQL循環結構

2013-05-28 00:35:48

JavaScriptfor循環

2022-10-09 07:07:51

Python類型代碼

2023-12-12 17:44:13

三級緩存Bean

2021-12-09 23:20:31

Python循環語句

2020-07-28 15:20:43

PythonUI代碼

2017-03-27 16:18:30

神經網絡TensorFlow人工智能

2017-11-15 19:30:08

Python內存泄露循環引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区在线看 | 自拍偷拍小视频 | 涩在线| 精品在线免费观看视频 | 中文字幕国产 | 久久伊人久久 | 国产一级久久久久 | 午夜影院黄| av国产精品 | 免费看一区二区三区 | 欧洲精品码一区二区三区免费看 | 一区二区三区av | 欧美人成在线视频 | 日韩精品在线看 | 日韩和的一区二区 | 国产美女h视频 | 日韩一区二区三区四区五区六区 | 久亚州在线播放 | 国产一区二区不卡 | 久久久久精 | 欧美色性 | 成人伊人网 | 日韩精品在线看 | av大片| 日韩欧美在线不卡 | 亚洲国产成人av好男人在线观看 | 亚洲天天干 | 日韩在线视频免费观看 | 国产麻豆一区二区三区 | 一区二区三区av | 91.色| 黄色av免费网站 | 伊人婷婷| 国产精品视频播放 | 中国一级特黄毛片大片 | 成人免费视频网站在线看 | 亚洲资源站 | 国产精品高潮呻吟久久 | 麻豆av在线免费观看 | 午夜影院普通用户体验区 | 成人三级视频在线观看 |