編程學習網 > 編程語言 > Python > Python教程:你所忽視的Python for循環高級玩法!
2024
07-05

Python教程:你所忽視的Python for循環高級玩法!


今天咱們要聊聊Python里頭那個看似普通,實則藏著大智慧的for循環。你可能會想,“for循環?我天天見,有啥新鮮的?”別急,看完這篇,保證讓你對for循環刮目相看!


一、for循環的“變身術”
先來點簡單的,你知道嗎?for循環不只是用來遍歷列表那么簡單。它可以變身成迭代任何可迭代對象的大師級工具。比如,字符串、元組、字典、集合……甚至是自定義的對象!

示例1:遍歷字典
d = {'apple': 1, 'banana': 2, 'cherry': 3}
for key in d:
    print(f"Key: {key}, Value: {d[key]}")
這段代碼中,for key in d: 讓我們能輕松地訪問字典的每一個鍵。但其實,我們還可以更進一步,同時獲取鍵和值!

示例2:使用items()方法
for key, value in d.items():
    print(f"Key: {key}, Value: {value}")
這樣,我們就能在一次循環中同時拿到鍵和值了,是不是超級方便?

二、for循環里的“小秘密”——enumerate()
接下來,讓我們見識一下enumerate()函數的魔力。這個函數可以給for循環加上序號,特別適合處理需要索引的情況。

示例3:使用enumerate()
fruits = ['apple', 'banana', 'cherry']
for i, fruit in enumerate(fruits):
    print(f"{i}: {fruit}")
看到沒,enumerate()自動幫我們生成了索引,再也不用自己手動計數啦!

三、for循環的“魔法”——zip()
有時候,我們需要同時處理兩個或多個列表。這時候,zip()函數就登場了。它能將多個列表“打包”在一起,讓我們能一行代碼搞定多個列表的遍歷。

示例4:使用zip()
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")
這樣,我們就可以同時遍歷names和ages兩個列表了,效率杠杠的!

四、for循環的“高級玩法”——列表推導式
說到for循環的高級玩法,怎么能不提列表推導式呢?這是一種快速創建新列表的方法,不僅簡潔,而且效率高。

示例5:使用列表推導式
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)
看看,短短一行代碼就完成了平方計算并生成了新列表,這效率,簡直了!

五、for循環的“終極奧義”——生成器表達式
最后,我們來聊聊生成器表達式。它和列表推導式類似,但是更節省內存。因為它是按需生成數據的,而不是一次性生成整個列表。

示例6:使用生成器表達式
big_numbers = range(1, 1000000)
squares_gen = (x**2 for x in big_numbers)
# 可以像這樣使用生成器
for square in squares_gen:
    if square > 100000000:
        break
    print(square)
這里,我們用生成器表達式處理了大量數據,而不會導致內存溢出。這就是它的強大之處!

進階技巧。
六、for循環與條件語句的結合
for循環和if語句是絕配,它們一起可以實現非常靈活的數據篩選。比如,從一堆數據中找出滿足特定條件的項。

示例7:篩選偶數
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers)
上面的代碼利用列表推導式和if條件語句,僅用了兩行就篩選出了所有偶數。簡潔明了,效率高!

七、嵌套for循環:解決復雜問題
當單層for循環無法解決問題時,嵌套for循環就是你的得力助手。它能處理多維數組、組合問題等復雜場景。

示例8:二維數組的遍歷
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for element in row:
        print(element, end=' ')
    print()  # 換行
通過兩層for循環,我們能輕松遍歷二維數組中的每個元素,無論是打印還是操作都非常方便。

八、for循環的“優雅退出”——break與continue
break和continue是控制循環流程的好幫手。break用于提前結束循環,而continue則跳過當前循環的剩余部分,直接進入下一次循環。

示例9:使用break和continue
for i in range(10):
    if i == 5:
        break  # 遇到5就提前結束循環
    elif i % 2 == 0:
        continue  # 跳過偶數,繼續下一輪循環
    print(i)
這里,我們利用break和continue控制循環的執行流程,使代碼更加靈活和可控。

九、for循環的“進階版”——while True與break
有時候,我們不知道循環需要執行多少次,這時while True配合break就是一個好選擇。它可以構建無限循環,直到滿足某個條件才退出。

示例10:用戶輸入驗證
while True:
    user_input = input("請輸入一個數字:")
    if user_input.isdigit():
        print("輸入正確!")
        break
    else:
        print("輸入錯誤,請重新輸入!")
上述代碼中,我們創建了一個無限循環,只有當用戶輸入的是數字時,才會跳出循環。這種模式在需要持續等待用戶輸入的場景下非常有用。

十、總結

通過今天的分享,你是否對Python的for循環有了新的認識?它遠不止于簡單的遍歷,而是蘊含著無數可能。從基本的列表遍歷到復雜的邏輯控制,for循環都是不可或缺的工具。

以上就是Python教程:你所忽視的Python for循環高級玩法!的詳細內容,想要了解更多Python教程歡迎持續關注編程學習網。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取