set()整理

疑問(wèn)點(diǎn):

日常工作中,面對(duì)list,字符串中重復(fù)的數(shù)據(jù),除了進(jìn)行循環(huán)外,怎么快速進(jìn)行去重?

帶著這樣的問(wèn)題,我們今天來(lái)認(rèn)識(shí)下python的內(nèi)置方法set()

Step1:

我們先看下set方法源碼:


set方法源碼

? ? 可以看出:

? ??????set()中輸入?yún)?shù)一定要為iterable,那么在python中有哪些類型是可以iterable的呢?

? ? ? ? set()返回結(jié)果為是新的一個(gè)無(wú)序不重復(fù)元素集,大家可以打印下set()的type類型為<class 'set'> ,并且不改變?cè)瓉?lái)的值

? ? Step2:

? ? ? ? 接著回來(lái)上面的問(wèn)題,有哪些類型的數(shù)據(jù)可以iterable呢?

? ? ? ? 首先,可以直接作用于 for 循環(huán)的數(shù)據(jù)類型有以下幾種:

????????????一類是集合數(shù)據(jù)類型,如 list、tuple、dict、set、str 等;

????????????一類是 generator,包括生成器和帶 yield 的 generator function。

? ? ? ? 然后,判斷一個(gè)對(duì)象是否可iterable,可以使用?isinstance()?判斷一個(gè)對(duì)象是否是Iterable對(duì)象:


判讀是否為Iterable對(duì)象

? ? ? ? Step3:

? ? ? ? ? ? 有了上述了解后,我們看下set()具體使用場(chǎng)景:(具體通過(guò)兩個(gè)list進(jìn)行比較)

? ? ? ? ? ? a)使用運(yùn)算符(取交集、并集、兩個(gè)list各自的差集)


使用運(yùn)算符進(jìn)行操作


? ? ? ? ? ? ? ? b)使用set()集合的函數(shù)


set()函數(shù)


總結(jié):

? ? ? ? set()可以很好的幫我們?nèi)ソ鉀Q遇到多個(gè)集合的比較的問(wèn)題,也啟發(fā)我們?cè)谑褂米罨A(chǔ)的for循環(huán),還有其他之外更好的方法去提升和改善我們的代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人筆記,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,953評(píng)論 0 5
  • # 第一優(yōu)先級(jí)規(guī)則聲明: # 除了夢(mèng)境,每一個(gè)意識(shí)主進(jìn)程都必須與一個(gè)身體參與的機(jī)械進(jìn)程相匹配,否則結(jié)束意識(shí)主進(jìn)程。...
    李洞BarryLi閱讀 4,210評(píng)論 0 1
  • 內(nèi)置函數(shù)Python解釋器內(nèi)置了許多功能和類型,總是可用的。他們是按字母順序列在這里。 abs(x)返回一個(gè)數(shù)的絕...
    uangianlap閱讀 1,376評(píng)論 0 0
  • 教程總綱:http://www.runoob.com/python/python-tutorial.html 進(jìn)階...
    健康哥哥閱讀 2,201評(píng)論 1 3
  • 寫在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 3,237評(píng)論 0 9

友情鏈接更多精彩內(nèi)容