今日發現乙個新函式
enumerate
。一般情況下對乙個列表或陣列既要遍歷索引又要遍歷元素時,會這樣寫:
for
iinrange (
0,len (
list
i,list[i
] 但是這種方法有些累贅,使用 內建enumerrate函式會有更加直接,優美的做法,先看看enumerate的定義:
def
enumerate (
collection
):'generates an indexed series: (0,coll[0]), (1,coll[1]) ...'i=
0it=iter (
collection )
while
1:yield(
i,it.
next ()) i
+=1enumerate會將陣列或列表組成乙個索引序列。使我們再獲取索引和索引內容的時候更加方便如下:
for
index
,text
inenumerate (
list
index
,text
在 cookbook裡介紹,如果你要計算檔案的行數,可以這樣寫:
count
=len (
open (
thefilepath,『
ru』 )
.readlines ())
前面這種方法簡單,但是可能比 較慢,當檔案比較大時甚至不能工作,下面這種迴圈讀取的方法更合適些。
count=-
1for
count
,line
inenumerate (
open (
thefilepath,『
ru』 ))
:pass
count+=1
Python生成動態變數和呼叫
做習題的時候需要生成多個空字典,所以找到了利用迴圈建立按序列命名字典的方法。直接執行表示式中的語句 for i in range 3 exec d dict format i exec print d format i 不能使用eval來替代exec,因為eval後要求的是表示式,如上exec後跟的...
python裡生成動態變數和如何使用動態變數
最近在做乙個小的程式,想用sympy處理傳入的字串公式和一串變長的引數值,生成一系列的值。在給公式賦值時,碰到了乙個問題,sympy需要先定義好符號的變數。而符號的變數在寫作函式時是不清楚的,如下圖 x,y symbols x y expr x y 2 y y 2x和y均為符號變數,是由變長引數值確...
python 自動生成動態變數及應用
在這裡我們需要exec函式 exec object globals locals object 必填 表示需要執行的python globals 選填 表示全域性命名空間 字典 locals 選填 表示當前區域性命名空間 字典 example 生成10個變數 q 0 q 1 q 2 q 3 q 4 ...