我用的是dir(m),然后過濾_開頭的內(nèi)容。再通過isinstance過濾掉函數(shù)。其余的就是變量了??赡苓€需要過濾一些東西。你試試看。
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為西陵等服務(wù)建站,西陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為西陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
當(dāng)python中的生成器被完整遍歷一次后,就無法再次遍歷。
我們希望享有生成器迭代占用內(nèi)存小的特性,又希望這個(gè)生成器能被遍歷多次。
方案之一是使用函數(shù) itertools.tee 來復(fù)制生成器
語(yǔ)法: generator1, generator2 = itertools.tee(generator, n=2)
generator是需要復(fù)制的生成器, n是復(fù)制出生成器個(gè)數(shù),默認(rèn)為2。
我們?yōu)榱松善髂芏啻伪闅v,可以這樣寫:
generator, copy_generator = itertools.tee(generator, 2)
然后遍歷copy_generator,保存的generator可以再次復(fù)制。
1、generator被復(fù)制后盡量不要使用
2、如果生成器中迭代的還是生成器,復(fù)制最外層生成器,生成器依然只能遍歷一次。
下一篇
python生成器多次遍歷(二)------創(chuàng)建生成器類
列表的遍歷
方法一:通過for循環(huán)
li = [i for i in range(10)]
for i in li:
print(i)
方法二:通過while循環(huán)
# 雖然for循環(huán)已經(jīng)很好用了,但是在有些情況下,使用while循環(huán)可以更靈活
# 只需要將判斷條件設(shè)置為小于列表長(zhǎng)度,即可完成列表通過while循環(huán)的遍歷
li = [i for i in range(10)]
i = 0
while i len(li):
print(li[i])
i += 1
方法三:配合enumerate使用,同時(shí)獲取列表的索引
li = [i + 1 for i in range(10)]
# 此時(shí),i為一個(gè)元組,元組的第一個(gè)元素為索引,第二個(gè)元素為原列表的元素
# 因此,在遍歷列表的同時(shí),需要同時(shí)獲取坐標(biāo)的情況下,可以配合enumerate()一起使用
for i in enumerate(li):
print(i)
字典的遍歷
字典的遍歷和列表有一些不同,因?yàn)樽值溆墟I和值兩個(gè)關(guān)鍵部分。默認(rèn)的遍歷情況,是遍歷字典的鍵,當(dāng)然,可以通過字典的鍵取得值,也可以直接遍歷值,或者直接遍歷鍵和值。
方法一:直接使用for循環(huán)
直接使用for循環(huán)對(duì)一個(gè)字典進(jìn)行遍歷,默認(rèn)取得的是字典的鍵
dt = {i: i + 1 for i in range(10)}
for i in dt:
print("字典的鍵:", i) # 字典的鍵
print("字典的值:", dt[i]) # 字典的值
方法二:遍歷dict.keys()
這種方法與方法一的效果其實(shí)是一樣的,同樣是獲取字典的鍵
dt = {i: i + 1 for i in range(10)}
for i in dt.keys():
print("字典的鍵:", i) # 字典的鍵
print("字典的值:", dt[i]) # 字典的值
方法三:遍歷dict.values()
這種方法與方法一和二很不相同,因?yàn)樗猾@取了字典的值
dt = {i: i + 1 for i in range(10)}
# 這是很特殊的方法,因?yàn)樗鼪]有獲取字典的鍵
for i in dt.values():
print("字典的值:", i) # 此時(shí)i不再是字典的鍵,而是值
方法四:遍歷dict.items()
這種方法一般來說要更好,因?yàn)樗瑫r(shí)獲取到了字典的鍵和值,而且性能上要高于先獲取鍵,再通過鍵獲取對(duì)應(yīng)的值
dt = {i: i + 1 for i in range(10)}
for i in dt.items():
print("字典的鍵值對(duì):", i)
print("字典的鍵:", i[0])
print("字典的值:", i[1])
總結(jié)
1,列表的遍歷比較簡(jiǎn)單,除了配合enumerate()使用,可以同步獲取索引以外,并沒有特別值得糾結(jié)的。
2,字典的遍歷方法比較多,其中第四種是能適用于一切情況的,前兩種也可以適用于一切情況,但是如果你同時(shí)需要獲取鍵和值,性能不如第四種要好。第三種比較特別,除非你真的只需要字典的值,否則它在多數(shù)情況下是不能夠滿足需求的。
新聞名稱:遍歷python模塊函數(shù) python遍歷對(duì)象屬性
分享地址:http://muchs.cn/article22/hgcjcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、定制網(wǎng)站、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)