創帆雲:python成為專業人士筆記--強烈建議收藏!每日持續更新!與另乙個集合互相操作:
#intersection 交集
.intersection()
或 &
#輸出:
#union 合併
.union()
| #輸出:
#difference 集合相減
.difference()
- #輸出:
#symmetric_difference 對稱差集(即某值單獨只在乙個集合**現)
.symmetric_difference()
^ #輸出:
#超集檢查 如果集合1包含了集合2,返回true,否則返回false
.issuperset()
>=
#返回false
#子集檢查 同上
.issubset()
<=
#輸出:true
#不相交集 如果兩個集合完全沒有相同的值,返回true
.isdisjoint()
#輸出:true
.isdisjoint()
#輸出:false
與另外乙個變數互相操作:
#是否存在檢查 如果存在返回true
2 in
#輸出:true
4 in
#輸出:false
4 not in
#輸出:true
對自己進行操作:
#增加和刪除集合元素
s =
s.add(4)
#s的值
s.discard(3)
#s 的值
s.discard(5)
#s 的值未發生變化 ,因為沒有元素為'5'的值
s.remove(2)
#s 的值為
#值為'2'的元素被刪除
s.remove(2)
#由於這時集合裡已沒有元素'2'了,所以會報keyerror!
#補充:discard和remove都是刪除元素,區別是discard刪除乙個集合中不存在的值不會報錯,而remove會直接報錯
s.update()
#s 的值為,因為之前的值1和4已與update的值合併,且不能有重複值
我的第一想法:
s=, }
#typeerror: unhashable type: 'set'
#居然報錯了!難道集合中不能儲存集合嗎?
在這種情況下,應該要用不可變集合資料型別:
), frozenset()}
這裡要注意:
如果s= 建立了乙個只有乙個元素的集合
但是如果是s={},則會建立乙個空的字典dict,而不是集合set!
因為這兩個資料型別的符號是一樣的!
如果要建立乙個空集合,正確方法是set()
集合是不同元素的無序集合,但有時我們希望處理某些有重複資料的集合(即重數集合),並統計元素的重複程度,如何做?
考慮以下例子 :
seta =
print(seta)
#輸出 ,會把相同的值排除掉
#同時你會發現,多次重複執行時,列印出來的集合元素的順序可能是不一樣的,因為集合本身不會額外排序
通過將字串「a」、「b」、「b」、「c」儲存到乙個集合資料結構中,我們丟失了關於「b」出現兩次的資訊,這時,如果希望元素保留這些重複元素的資訊,用資料結構列表list可以做到:
lista = ['a','b','b','c']
#列表將按原始順序顯示,並且不刪除重複資料『b』
但是列表資料結構引入了額外的不必要的排序,這會降低我們的計算速度
這看起來是個兩難的問題,怎麼辦呢?
為了實現重數集合的元素統計,python提供了集合模組中的counter類(從2.7版開始) :
from collections import counter
countera = counter(['a','b','b','c'])
print(countera)
print(type(countera))
#輸出:
值:counter()
資料型別:
counter是乙個字典,其中元素儲存為字典鍵,它們的計數儲存為字典值。
而字典本身就是乙個無序的集合,所以這個資料結構沒有不必要的排序消耗,很好的解決了上面的問題
Python成為專業人士筆記 Sqlite3 模組
創帆雲 python成為專業人士筆記 強烈建議收藏!每日持續更新!sqlite3模組是由gerhard haring編寫的。要使用此模組,必須首先建立表示資料庫的連線物件。這裡的資料將儲存在example.db檔案中 import sqlite3 conn sqlite3.connect examp...
Python成為專業人士筆記 位操作符
創帆雲 python成為專業人士筆記 強烈建議收藏!每日持續更新!按位操作符直接操作二進位制的字串,這些是最基本的操作,並直接由 處理器所支援。在處理裝置驅動程式 圖形底層 加密和網路通訊時,這些位操作是必需的。本文提供一些有用的知識和對應python的按位運算子示例 運算子將翻轉數字中的所有位,由...
Python成為專業人士筆記 自定義鍊錶
創帆雲 python成為專業人士筆記 強烈建議收藏!每日持續更新!鍊錶是節點的集合,每個節點由乙個索引和乙個值組成,索引將所有節點串成了乙個序列。自定義鍊錶可用於實現更為複雜的資料結構,如列表 堆疊 佇列和關聯陣列等。本例使用與內建list物件相同的許多方法實現了乙個鍊錶 元素節點處理類 class...