python中for迴圈 迭代的技巧

2021-07-09 03:37:15 字數 1239 閱讀 6137

示例如下:

# -*- coding: utf-8 -*-

def print_elem(container):

for elem in container:

print(elem, end=' | ')

print()

'''

在迭代過程中修改迭代序列不安全,所以要修改序列時,

要對它的副本做迭代,而不是原序列本身

'''arr = [1, 2, 3, 4]

for elem in arr[:]: # 想要修改arr,則通過arr的副本arr[:]做迭代

if elem == 3:

arr.insert(0, elem)

print_elem(arr)

''' 若要對原序列做修改,則可以通過下標的for迴圈實現,不要用迭代 '''

for idx in range(len(arr)):

if arr[idx] == 3:

arr[idx] = 5

print_elem(arr)

''' 想要同時得到索引和對應的值,可以使用enumerate '''

for idx, elem in enumerate(arr):

print('(', idx, ',', elem, ')', sep="", end=" ")

print()

''' 想要同時迭代兩個序列,用zip,迭代的次數是較短序列的長度 '''

arr1 = ["cx", "wb"]

arr2 = ["山東", "河北", "江西"]

for person, hometown in zip(arr1, arr2):

print("的家鄉是".format(person, hometown), end=",")

print()

'''迴圈乙個序列按排序順序,使用sorted()函式,set返回乙個新的排序的列表,保留原列表不變。'''

for elem in sorted(set(arr2)):

print(elem, end=",")

print()

# 原列表未改變

print_elem(arr2)

''' 要反向遍歷乙個序列,首先正向生成這個序列,然後呼叫 reversed() 函式。'''

for i in reversed(range(1, 10, 2)):

print(i, end=',')

python 迴圈(迭代)

for 和 while for用來迭代處理,什麼叫迭代?你就當沒看到這個詞,for是把一堆玩意做乙個乙個加工用的,比如吃一袋花生,得乙個乙個剝吧,就是這意思 a abcde 每個字母當做乙個花生,a是一袋子 for i in a 從袋子裡面乙個乙個拿花生,拿出的每乙個花生都起名叫小i君 i i ma...

python中的for迴圈(迭代器機制)

python中的for迴圈 1 x hello 2 for i in x iter x x.iter 3 print i iter x.next iter l x.iter 遵循迭代器協議,生成可迭代物件 print iter l.next for迴圈和索引沒關係 基於迭代器機制 對列表的索引 超出...

python中的for迴圈(迭代器機制)

python中的for迴圈 1 x hello 2 for i in x iter x x.iter 3print i iter x.next iter l x.iter 遵循迭代器協議,生成可迭代物件 print iter l.next for迴圈和索引沒關係 基於迭代器機制 對列表的索引 超出索...