示例如下:
# -*- 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("{0}的家乡是{1}".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=',')