新聞中心
python的SET是一個無序且無重復(fù)元素的集合,概念上相當(dāng)于數(shù)學(xué)上的無序集,數(shù)據(jù)結(jié)構(gòu)上相當(dāng)于dict的鍵。

成都創(chuàng)新互聯(lián)公司專注于湯旺企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。湯旺網(wǎng)站建設(shè)公司,為湯旺等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站策劃,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
既然set是集合,則必然可以實(shí)現(xiàn)并、交、差、對稱差等集合運(yùn)算。
set是一組無序排列的可哈希的值,因此可以用作字典中的鍵。set和之前介紹的list、tuple、dict等一樣,可以使用in操作符檢查元素是否在集合中存在,使用len()求得集合元素的個數(shù),使用for循環(huán)迭代其成員,使用copy()返回一個淺復(fù)制。不同之處在于集合本身無序,所以沒有索引,就不能實(shí)現(xiàn)索引和切片操作。
相關(guān)推薦:《Python視頻教程》
set具有以下特性:
·元素不重復(fù)出現(xiàn)
·元素必須是不可變對象
你可以把set當(dāng)作是dict中的鍵來理解,當(dāng)然僅僅限于數(shù)據(jù)結(jié)構(gòu)層面。
在Python中set的底層結(jié)構(gòu)和字典是完全一樣的都是哈希表,就當(dāng)成是只有鍵沒有值的字典就可以了。
Python 早期版本就沒有set這個類型,那時候開發(fā)者都是直接建一個 {key1:None, key2:None}的字典來實(shí)現(xiàn)set的功能。
字典和set都是用空間來換時間,空間浪費(fèi)很大。
set的用途是解決了判斷某個元素在集合中出現(xiàn)的查找效率問題。
>>> timeit.timeit(stmt='10**4 in s',setup='s=range(10**5)', number=10**5) 13.447274759909192 >>> timeit.timeit(stmt='10**4 in s',setup='s=set(xrange(10**5))', number=10**5) 0.006686778187940945 >>>
list的實(shí)現(xiàn)方式是鏈表,空間利用率高追加元素快而方便。
當(dāng)前文章:創(chuàng)新互聯(lián)Python教程:python set有序嗎
本文地址:http://www.dlmjj.cn/article/cdogsjh.html


咨詢
建站咨詢
