集合:無序的不重復(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