1. 程式人生 > 實用技巧 >K8S(12)配置中心實戰-多環境交付apollo三元件

K8S(12)配置中心實戰-多環境交付apollo三元件

一、概念

#迭代器即迭代的工具,那什麼是迭代呢?#迭代是一個重複的過程,每次重複即一次迭代,並且每次迭代的結果都是下一次迭代的初始值
while True: #只是單純地重複,因而不是迭代
print('===>')

l=[1,2,3]
count=0
while count < len(l): #迭代
print(l[count])
count+=1

二、為何要有迭代器?什麼是可迭代物件?什麼是迭代器物件?

釋義

三、迭代器物件的使用

dic={'a':1,'b':2,'c':3}
iter_dic=dic.__iter__() #得到迭代器物件,迭代器物件即有__iter__又有__next__,但是:迭代器.__iter__()得到的仍然是迭代器本身
iter_dic.__iter__() is iter_dic #True print(iter_dic.__next__()) #等同於next(iter_dic) print(iter_dic.__next__()) #等同於next(iter_dic) print(iter_dic.__next__()) #等同於next(iter_dic) # print(iter_dic.__next__()) #丟擲異常StopIteration,或者說結束標誌 #有了迭代器,我們就可以不依賴索引迭代取值了 iter_dic=dic.__iter__() while 1: try: k
=next(iter_dic) print(dic[k]) except StopIteration: break #這麼寫太醜陋了,需要我們自己捕捉異常,控制next,python這麼牛逼,能不能幫我解決呢?能,請看for迴圈
釋義

四、for迴圈

#基於for迴圈,我們可以完全不再依賴索引去取值了
dic={'a':1,'b':2,'c':3}
for k in dic:
print(dic[k]) #for迴圈的工作原理
#1:執行in後物件的dic.__iter__()方法,得到一個迭代器物件iter_dic
#2: 執行next(iter_dic),將得到的值賦值給k,然後執行迴圈體程式碼
#3: 重複過程2,直到捕捉到異常StopIteration,結束迴圈 五、迭代器的優缺點 #優點: - 提供一種統一的、不依賴於索引的迭代方式
- 惰性計算,節省記憶體
#缺點:
- 無法獲取長度(只有在next完畢才知道到底有幾個值)
- 一次性的,只能往後走,不能往前退

六、示例

# 例1
# names=["egon","alex","lxx"]
# names="abcdefg"

# i=0
# while i < len(names):
#     print(names[i])
#     i+=1

# 例2:
# c="hello"
# d=["a",'B','C']
# e=("a",'B','C')
# a={"k1":111}
# g={111,222,333}
# f=open("a.txt",'w')

# dic={'k1':111,"k2":222,'k3':333}
# dic={111,222,333}
# iter_dic=dic.__iter__()

# print(iter_dic.__iter__() is iter_dic)
# print(iter_dic)

# res=iter_dic.__next__()
# print(res)
#
# res=iter_dic.__next__()
# print(res)
#
# res=iter_dic.__next__()
# print(res)
#
# res=iter_dic.__next__()
# print(res)

dic={111,222,333}
iter_dic=dic.__iter__()

while True:
    try:
        print(iter_dic.__next__())
    except StopIteration:
        break
print('='*50)
iter_dic=dic.__iter__()
while True:
    try:
        print(iter_dic.__next__())
    except StopIteration:
        break
示例