Python12 可迭代物件

2021-09-11 05:28:43 字數 2181 閱讀 8823

#可迭代物件:就是使用for迴圈遍歷取值的物件就是可迭代物件

# for迴圈可以直接遍歷:列表、元組、字串、集合、range

from collections import iterable

#判斷物件是否是指定型別

result = isinstance('str', int)

print(result)

#元組result = isinstance('(1,2)', iterable)

print(result)

# 可迭代物件都有方法: __iter__

result = dir([1,2])

print(result)

# 迭代器

#在類裡面有方法 __iter__ 和 __next__,建立的物件就是迭代器

from collections import iterable

class myiterable(object):

def __init__(self):

self.mylist = [4,5,9]

self.current_index = 0

def __iter__(self):

# 返回乙個迭代物件

return self

def __next__(self):

if self.current_index < len(self.mylist):

#獲取迭代器的下乙個值

result = self.mylist[self.current_index]

self.current_index +=1

return result

else:

# 停止迭代,丟擲異常

raise stopiteration

# 建立迭代器

my_iterable = myiterable()

result = isinstance(my_iterable, iterable)

print(result)

#下面兩段**,只輸出一遍結果

mm = next(my_iterable)

print(mm)

mm = next(my_iterable)

print(mm)

mm = next(my_iterable)

print(mm)

mm = next(my_iterable) #越界,丟擲異常

print(mm)

for value in my_iterable:

# for 迴圈裡面直接停止迭代,系統內部幫助我們處理好了

print(value)

'''生成器

乙個特殊的迭代器,同樣可以通過next和for迴圈取值

值只能向後取,不能向前取

'''# 列表生成式

result = [x for x in range(4)]

print(result, type(result))

#生成器

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

print(result, type(result))

# 下面兩段**只執行乙個

value = next(result)

print(value)

value = next(result)

print(value)

value = next(result)

print(value)

for value in result:

print(value)

#使用yield建立生成器

def show_num():

for i in range(5):

yield i

#**遇到yield會暫停,然後把結果返回過去

#下次啟動時,生成器會在暫停的位置

#yield特點:可以返回多次值,return只能返回乙個值

g = show_num()

print(g)

value = next(g)

print(value)

value = next(g)

print(value)

value = next(g)

print(value)

for value in g:

print(value)

python 12 物件導向基礎語法

dir 內建函式 定義簡單的類 只包含方法 方法中的self 引數 初始化方法 內建方法和屬性 在ipython中物件幾乎是無所不在的,我們之前學習的變數 資料 函式都是物件 在python中可以使用以下兩個方法驗證 1.在識別符號 資料後輸入乙個.然後按下tab鍵,ipython 會提示該物件能夠...

Python 可迭代物件

1.可迭代物件 以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield 的 generator function 這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable 2...

python可迭代物件

0 在python中只要是能用for in的,都是可迭代物件,讓我們看下定義 定義 我們已經知道可以對list tuple dict set str等型別的資料使用for in 的迴圈語法,會從其中依次拿到資料元素進行使用,我們把這樣的過程稱為遍歷,也叫迭代。所以我們把可以通過for in 這類語句...