怎麼判斷他是不是迭代器?
兩種方法
1 "__iter__" in dir(object) #判斷是不是可迭代的 #注意__iter__要加引號
2.引入模組
li = [1,2,3,4,5]
from collections import iterable #判斷是不是可迭代的
print(isinstance(li,iterable))
from collections import iterator #判斷是不是迭代器
print(isinstance(li,iterator))
今日內容大綱
1.生成器表示式,列表推導式(其他推導式)
2.內建函式
一.列表推導式
l = [i for i in range(1,14)]
[變數(加工後的變數) for 變數 in iterable] 迴圈模式
l1 = ["python%s期" %i for i in range(1,14)]
優點:1.節省**,一行搞定.
2.看著高大上
缺點:不好排錯
整體:凡使用列表推導式構造的列表物件,用其他方式都可構建,複雜的列表推導式構建不出的.
列表推導式比較有魔性
[變數(加工後的變數) for 變數 in iterable if 條件] 篩選模式
li = [i for i in range(1,14) if i%3==0]
生成器表示式
l1 = ["python%s期"%i for i in range(1,14)]
g_obj = ("python%s期"%i for i in range(1,14)) 迴圈模式
for i in g_obj:
print(i)
g_obj = ("python%s期"%i for i in range(1,14) if 條件) 篩選模式
生成器:兩種方式:1.生成器函式 yield 2. 生成器表示式
為什麼有生成器?
生成器本身是自己用python**構建的.這樣就滿足了個性化需求,滿足以後工作中需要
字典推導式:
mase =
dic =
二.內建函式.
一些常用的功能,python都給封裝好了,供我們直接使用.
1.1作用域相關
globals() 永遠是全域性
locals() 當前位置區域性所有變數以及函式名等資料
1.2其他相關
1.2.1 字串型別**的執行eval , exec , complie
eval:執行字串型別的**,並返回最終結果
print("1+3")
print(eval("1+3"))
print(eval(""))
exec:執行字串型別的**,返回none
code ="""
for i in range(1,14): #一定要注意要頂格寫
print(i)
"""print(exec(code))
1.2.2輸入輸出相關
input:函式接受乙個標準輸入資料返回str型別
print:列印輸出
print(1,2,3,sep= "!")#sep是設定每個元素的連線符
print(666,end=" ")#end= "\n"預設換行
1.2.3記憶體相關
hash:獲取乙個物件(可雜湊物件:int,str,bool,tuple)的雜湊值
print(hash("name"))
print(hash(100))
print(hash(true)) 等同於 print(hash(1))
id 用於獲取物件的記憶體位址
1.2.5幫助
help:函式用於檢視函式或模組用途的詳細說明
print(help(str))
1.2.6呼叫相關
callable:函式用於檢查乙個物件是否可呼叫的,如果返回true,object仍然可能呼叫失敗,但如果返回false,呼叫物件object絕對不會成功.
例:def func():
print("你好美")
a = 2
func()
print(callable(func)) #列印的結果是true 所以func是可呼叫的
print(callable(a)) #列印的結果是false 所以a是不可呼叫的
生成器和迭代器
可以直接作用於for迴圈的物件稱為可迭代物件 iterable.可以用isinstance 判斷乙個物件是否是iterable物件。isinstance iterable true isinstance iterable true isinstance 235,iterable false 而生成器...
迭代器和生成器
1 迭代器的概念 print dir 告訴我列表的所有用法 有雙下劃線的所有方法叫做雙下方法,是c語言已經寫好的方法。你可以用不止一種方法呼叫它。列表的用法變集合 set dir 求交集 set dir set dir set dir 求列表,字典,字串它們的用法的交集 他們共同的用法 iterab...
生成器和迭代器
1.iterator 迭代器 舉例 我們對list使用for for i in 1,2,3,4 print i 12 34對string物件使用for for ch in python print ch py thon對字典物件使用for for k in print k yx對檔案使用for fo...