for x in[1
,2,3
]:#列表...
:print
(x)...
:123
for x in(1
,2,3
):#元組...
:print
(x)...
:123
d =#字典表
for k in d:..
.:print
(k)...
: ab
f =open
('hello.txt'
)#檔案本身也是迭代器物件,不呼叫讀方法也能直接遍歷
for line in f:..
.:print
(line, end ='')
...:
hello world
python
f =
open
('hello.txt'
)iter
(f)is f
out[14]
:true
f.__next__(
)out[16]
:'hello world\n'
f.__next__(
)out[18]
:'python\n'
l =[
'a',
'b',
'c']
iter
(l)is l
out[21]
:false
l.__next__(
)attributeerror:
'list'
object has no attribute '__next__'
i =iter
(l)i.__next__(
)out[25]
:'a'
i.__next__(
)out[26]
:'b'
i.__next__(
)out[27]
:'c'
檔案和列表都能直接用for迴圈遍歷,因為它們都實現了_next_()方法,使用時無需將整個檔案或列表讀入記憶體,而是乙個元素接下乙個元素遍歷。但它們之間還有區別,檔案屬於迭代器物件,已經直接實現了_next_()方法;而列表屬於可迭代物件,一開始並沒實現_next_()方法,而是在使用for迴圈遍歷時通過iter()方法實現_next_()方法。
l =[1
,2,3
]res =
i =iter
(l)while
true:.
..:try:.
..next
(i)**2)
...:
except stopiteration:..
.:break..
.:
resout[36]
:[1,
4,9]
# result = [x**2 for x in l]使用列表推導,效率更高
emp =
emp.keys(
)#為可迭代物件而非列表,更省記憶體
out[38]
: dict_keys(
['name'
,'age'
,'salary'])
emp.items(
)out[39]
: dict_items([(
'name'
,'tom'),
('age',20
),('salary'
,8000.0)]
)keys = emp.keys(
)iter
(keys)
is keys
out[41]
:false
i =iter
(keys)
#建立迭代器物件
i.__next__(
)out[43]
:'name'
i.__next__(
)out[44]
:'age'
next
(i)out[45]
:'salary'
r =
range(1
,20)#range()返回的物件支援迴圈遍歷及推導,但並非列表,屬於可迭代物件
type
(r)out[47]
:range
iter
(r)is r
out[48]
:false
i =iter
(r)i.__next__(
)out[50]
:1i.__next__(
)out[51]
:2next
(i)out[52]
:3result =
zip([1
,2,3
],['a'
,'b'
,'c'])
#zip()返回的也屬於可迭代物件
result
out[54]
:<
zip at 0x20d981fe708
>
for x in result:..
.:print
(x)...
:(1,
'a')(2
,'b')(
3,'c')
result =
zip([1
,2,3
],['a'
,'b'
,'c'])
iter
(result)
is result
out[58]
:true
result.__next__(
)out[59]
:(1,
'a')
類似range()、zip()返回可迭代物件的還有map()、filter(),比直接返回列表更節省記憶體。 線代筆記1
n元齊次方程方程組的解空間 秩r 是 rn上的n r維的子空間。解空間 零空間 是係數矩陣a行空間的正交補。正交補的意思是,n維空間裡的兩個子空間正交,且兩個子空間原點重合起來剛好成張成n維空間。將矩陣a看作行向量 則矩陣方程ax 0可以理解為 任意解向量與行向量正交 因為內積為0 而這些行向量可以...
線代筆記2
可逆 行列式不為零 滿秩 齊次方程只有零解 線性無關 線性無關的意思是 向量之間沒有任何關係,誰也不能表示誰,誰也不能被誰表示,向量前的係數都是零 在高斯消元過程中,會出現方程組中若干個方程被消去的情況,剩下的方程個數稱為r,稱為線性方程組的秩。這r個方程可以表示原方程組中的所有方程,並且這r個方程...
線代筆記3
對應於係數矩陣初等變換後,對應 於主元列 的 變數 稱為基本變數,對應 非主元列 的 變數 稱為自由變數 基本變數可以表示成自由變數的 線性組合 也就是說,自由變數之間是 線性無關 的 可以被自由變數表示的基本變數和自由變數之前是線性相關的,自由變數之間是線性無關的,因為把基本變數右移,就成了乙個係...