日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python哪些类型可以作为迭代器_python0.8-----set类型与迭代器

發(fā)布時間:2023/12/2 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python哪些类型可以作为迭代器_python0.8-----set类型与迭代器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

set:類似dict,是一組dict的集合,不存儲value。

本質(zhì):無序(沒有下標)無重復(fù)的元素的集合。

創(chuàng)建:

創(chuàng)建set需要一個list或者tuple或者dict作為輸入集合。重復(fù)元素在色中會被自動過濾。

s1=[1,2,3,4,5,6,1,2]

set(s1)={1,2,3,4,5,6} --表示》將列表轉(zhuǎn)化成set集合類型。

s2=(1,2,3,4,5,6,1,2)

set(s2)={1,2,3,4,5,6} --表示》將元組轉(zhuǎn)化成set集合類型。

s3={1:2,2:3,3:4}

set(S3)={1,2,3} ? ? ??--表示》將字典轉(zhuǎn)化成set集合類型。注意,只將字典的key轉(zhuǎn)為set集合的元素。

還有以下操作:

list(set1) ? ? ? ? ? ? ? ? ? ? ?--表示》將set集合類型轉(zhuǎn)化成列表類型。

tuple(set1) ? ? ? ? ? ? ? ? ? --表示》將set集合類型轉(zhuǎn)化成元組類型。

增:

可以添加重復(fù)元素,但是不會有效果。

set1.add(value) ?valu不可以是列表或者字典,一位列表或者字典是可變對象。

set1.update(value) 打碎插入,value必須是字符串,列表,元組,字典等可迭代類型。

刪:

set1.remove(value):刪掉集合set1里面的value大小的元素。

查:

只能通過遍歷查找元素:

for i in set1:

print(i)

交集和并集:

set1=set2 & set3 :把set2和set3的交集賦給set1。

set1=set2 ?| ?set3 :把set2和set3的并集賦給set1。

迭代器:

可迭代對象:可以直接作用于for循環(huán)的對象統(tǒng)稱為可迭代對象(iterable),例如:字符串,列表,元組,set集合,字典。

可以用isinstance()判斷對象是否為iterable對象。不過再調(diào)用isinstance之前應(yīng)該輸入:

from collections import Iterator

例如:

isinstance([],Iterable) 返回True,說明[]是可迭代對象

isinstance((),Iterable) 返回True

isinstance({},Iterable) ?返回True

isinstance("",Iterable) 返回True

isinstance((x for x in range(10)),Iterable) ?返回True,說明(x for x in range(10))是可迭代對象

可以直接作用于for的數(shù)據(jù)類型一般分為兩種:

1:集合數(shù)據(jù)類型,如:list,tuple,dict,set,string。

2:generator,包括生成器和帶yield的generator function。

迭代器(Iteratior對象):不但可以作用于for循環(huán),還可以被next()函數(shù)不斷調(diào)用,并返回下一個值,直到最后拋出一個異常stopIteration,表示無法繼續(xù)返回下個值的對象,這邊是迭代器。

可以用isinstance()函數(shù)判斷一個函數(shù)是否是Iterator對象,不過在此之前,要調(diào)用:from collection import Iterator。

isinstance((x for x in range(10)),Iterator) ?返回True,說明(x for x in range(10))是一個迭代器。

例如:

令k=(x for x in range(5)),則k就是一個迭代器。

next(k)=0

next(k)=1

next(k)=2

next(k)=3

next(k)=4

next(k)---因為迭代器內(nèi)容已經(jīng)訪問完了,會拋出異常->stopIteration

list,tuple,str,dict都可以轉(zhuǎn)化成為迭代器:

a=iter(list1) :把list1轉(zhuǎn)化為迭代器了,賦值給a。

b=iter(tuple1) :把tuple1轉(zhuǎn)化為迭代器了,賦值給b。

c=iter(str1) :把str1轉(zhuǎn)化為迭代器了,賦值給c。

d=iter(dict1) :把dict1轉(zhuǎn)化為迭代器了,賦值給d。

迭代器應(yīng)用實例:將input以'\n'表示結(jié)束標志改成以'end'作為input的結(jié)束標志。

endStr='end'

str=''

for line in iter(input,endStr)

str+=line+'\n'

print(str)

總結(jié)

以上是生活随笔為你收集整理的python哪些类型可以作为迭代器_python0.8-----set类型与迭代器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。