Python之路5:集合

集合:無序的不重復(fù)的數(shù)據(jù)集合

作用:

去重
關(guān)系測試,測試兩組數(shù)據(jù)之間的交集,差集和并集等關(guān)系

特征:

確定性,元素必須可hash
互異性
無序性,集合中的元素沒有先后之分

集合的用法:

  • 創(chuàng)建
s = {1,2,3,4}
  • 增加
>>> s.add(1)  // 重復(fù)的數(shù)據(jù)加入不進(jìn)去
>>> s
{1, 2, 3, 4}
>>> s.add(5) // add 只可添加可 hash 值
>>> s.update([2,3,4,7,8]) // 可以把多個(gè)值加入到集合
>>> s
{1, 2, 3, 4, 5, 7, 8}
  • 刪除
>>> s.pop()  // 隨機(jī)刪除集合內(nèi)的值,如果集合為空會報(bào)錯(cuò)
1
>>> s.discard(4) // 刪除指定的數(shù)值,即使集合內(nèi)沒有這個(gè)值也不會報(bào)錯(cuò)
>>> s.discard(0)
>>> s.clear()  // 清空整個(gè)集合
  • 關(guān)系測試之交集
>>> s = {1, 2, 3, 4}
>>> s2 = {3, 4, 5, 6}
>>> s.intersection(s2)  // 取 s s2 之間的交集
{3, 4}
>>> s & s2   // 可以用 & 符來提取
{3, 4}
  • 關(guān)系測試之差集
>>> s.difference(s2) // s s2 之間的差集并打印只在 s 的值
{1, 2}
>>> s - s2    // 或者用 - 號來提取
{1, 2}
>>> 
>>> s2.difference(s)  // s s2 之間的差集并打印只在 s2 的值
{5, 6}
>>> s2 - s
{5, 6}
  • 關(guān)系測試之并集
>>> s.union(s2) // 將 s s2合并,并去掉重復(fù)值
{1, 2, 3, 4, 5, 6}
>>> s | s2  // 或者用 | 
{1, 2, 3, 4, 5, 6}
  • 關(guān)系測試之對稱差集
>>> s.symmetric_difference(s2) // 合并只存在 s s2 中的值
{1, 2, 5, 6}
>>> s ^ s2    // 或者用 ^ 括號
{1, 2, 5, 6}
  • 包含關(guān)系
>>> s.isdisjoint(s2) // 判斷兩個(gè)集合是否不相交
False
>>> s2
{3, 4, 5, 6}
>>> s.update([5,6])
>>> s
{1, 2, 3, 4, 5, 6}
>>> s.issuperset(s2) // 判斷集合是否包含其他集合,相當(dāng)于 a >=b
True
>>> s.issubset(s2)  // 判斷集合是否被其他集合所包含
False
>>> s2.issubset(s) // s2 被 s所包含,相當(dāng)于 a <=b
True
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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