Python零基礎學習筆記(二十三) 迭代器

2021-09-19 19:23:40 字數 1476 閱讀 7140

from collections import iterable, iterator

'''可迭代物件:可以直接作用於for迴圈的物件統稱為可迭代物件

(iterable) 可以用isinstance()去判斷乙個物件是否是iterable物件

可以直接作用於for的資料型別一般分兩種

1、集合類資料型別:list、 tuple、 dict、 set、 string

2、是generator,包括生成器和帶yield的generator function

'''print(isinstance(,iterable))

print(isinstance((),iterable))

print(isinstance({},iterable))

print(isinstance("",iterable))

print(isinstance((x for x in range(10)),iterable))

print(isinstance(1,iterable))

'''直到最後丟擲乙個stopiteration錯誤表示無法繼續返回下乙個值

可以被next()函式呼叫並不斷返回下乙個之的物件稱為迭代器

(iterator物件)

可以用isinstance()函式判斷乙個物件是否是可迭代物件

'''print(isinstance(,iterator))

print(isinstance((),iterator))

print(isinstance({},iterator))

print(isinstance("",iterator))

print(isinstance((x for x in range(10)),iterator))

l = (x for x in range(4))

print(l)

print(next(l))

print(next(l))

print(next(l))

print(next(l))

lq = (x for x in [1, 2, 3, 5])

print(next(lq))

print(next(lq))

print(next(lq))

print(next(lq))

#同理tuple、dict、set、string都可以

#轉換成iterator物件

a = iter([2, 4, 6])

print(next(a))

print(next(a))

print(next(a))

print(isinstance((a), iterator))

endstr = "end"

str = ""

for line in iter(input, endstr):

str += line + "\n"

print(str)

Python零基礎學習筆記(二十二) set

set 類似dict,是一組key的集合,不儲存value 本質 無序和無重複元素的集合 用途 經常用於去除list和tuple中的重複元素 建立 建立set 需要乙個list或者tuple或者dict作為輸入集合 重複元素在set中會自動被過濾 set1 set 1,2,2,2,3,4,5 pri...

Python零基礎學習筆記(二十四) 函式

認識函式 在以惡完整的專案中,某些功能會反覆的使用,那麼 會將功能封裝成函式,當我們要使用這些功能的時候 直接呼叫函式即可 本質 函式就是對功能的封裝 優點 1 簡化 結構,增加了 的復用度 重複使用的程度 2 如果想修改某些功能或修改某個bug只需要修改相應的函式即可 定義函式 格式 def 函式...

Python零基礎學習筆記(二十五) 裝飾器

概念 是乙個閉包,把乙個函式當作引數返回乙個替代版的函式 本質上是乙個返回函式的函式 簡單的裝飾器 def func1 print my name is jjking.def func2 print func1 func2 def func3 func def inner print func re...