成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Python 實現集合Set的示例

瀏覽:135日期:2022-07-01 15:31:14

Python的集合set原理

集合(set)是一個無序的不重復元素序列。

可以使用大括號 { } 或者 set() 函數創(chuàng)建集合,注意:創(chuàng)建一個空集合必須用 set() 而不是 { },因為 { } 是用來創(chuàng)建一個空字典。

class Array(object): def __init__(self, size=32, init=None): self._size = size self._items = [init] * self._size def __getitem__(self, index): return self._items[index] def __setitem__(self, index, value): self._items[index] = value def __len__(self): return self._size def clear(self, value=None): for i in range(len(self._items)): self._items[i] = value def __iter__(self): for item in self._items: yield itemclass Slot(object): '''定義一個 hash 表 數組的槽 注意,一個槽有三種狀態(tài),看你能否想明白 1.從未使用 HashMap.UNUSED。此槽沒有被使用和沖突過,查找時只要找到 UNUSED 就不用再繼續(xù)探查了 2.使用過但是 remove 了,此時是 HashMap.EMPTY,該探查點后邊的元素扔可能是有key 3.槽正在使用 Slot 節(jié)點 ''' def __init__(self, key, value): self.key, self.value = key, valueclass HashTable(object): # 表示從未被使用過 UNUSED = None # 使用過,但是被刪除了 EMPTY = Slot(None, None) def __init__(self): self._table = Array(8, init=HashTable.UNUSED) self.length = 0 # 負載因子 @property def _load_factor(self): return self.length/float(len(self._table)) def __len__(self): return self.length # 哈希函數 用內置的哈希哈數進行哈希一下,然后對數組長度取模 def _hash(self, key): return abs(hash(key)) % len(self._table) def _find_key(self, key): # 得到第一個值的位置 index = self._hash(key) _len = len(self._table) # 當這個槽不是未使用過的,才接著往下找;如果是未使用過的,這個key肯定不存在 while self._table[index] is not HashTable.UNUSED: # 槽使用過,但是被刪除了 if self._table[index] is HashTable.EMPTY: # cpython解決哈希沖突的一種方式 index = (index*5 + 1) % _len continue elif self._table[index] == key: return index else: index = (index * 5 + 1) % _len return None # 檢測槽是否能被插入 def _slot_can_insert(self, index): return (self._table[index] is HashTable.EMPTY or self._table[index] is HashTable.UNUSED) # 找到能被插入的槽的index def _find_slot_insert(self, key): # 得到第一個值的位置 index = self._hash(key) _len = len(self._table) while not self._slot_can_insert(index): index = (index * 5 + 1) % _len return index # in 操作符 def __contains__(self, key): index = self._find_key(key) return index is not None def add(self, key, value): if key in self: index = self._find_key(key) # 更新值 self._table[index].value = value return False else: index = self._find_slot_insert(key) self._table[index] = Slot(key, value) self.length += 1 if self._load_factor > 0.8: return self._rehash() return True def _rehash(self): oldtable = self._table newsize = len(self._table) * 2 # 新的table self._table = Array(newsize, HashTable.UNUSED) self.length = 0 for slot in oldtable: if slot is not HashTable.UNUSED and slot is not HashTable.EMPTY: index = self._find_slot_insert(slot.key) self._table[index] = slot self.length += 1 def get(self, key, default=None): index = self._find_key(key) if index is None: return default else: return self._table[index].value def remove(self, key): index = self._find_key(key) if index is None: raise KeyError value = self._table[index].value self.length -= 1 # 把槽設置為空槽 self._table[index] = HashTable.EMPTY return value def __iter__(self): for slot in self._table: if slot not in (HashTable.UNUSED, HashTable.EMPTY): yield slot.valueclass SetADT(HashTable): def add(self, key): return super(SetADT, self).add(key, True) def __and__(self, other_set): # 求交集 new_set = SetADT() for element_a in self: if element_a in other_set: new_set.add(element_a) return new_set def __sub__(self, other_set): # 求差集 new_set = SetADT() for element_a in self: if element_a not in other_set: new_set.add(element_a) return new_set def __or__(self, other_set): # 求交集 new_set = SetADT() for element_a in self: new_set.add(element_a) for element_b in other_set: new_set.add(element_b) return new_set

以上就是Python 實現集合Set的示例的詳細內容,更多關于Python 實現集合Set的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩国产首页在线观看| 国产一区二区三区综合| 国产又黄又大久久| 麻豆av一区二区三区| 亚洲人一二三区| 成人小视频免费观看| 欧美日韩视频在线第一区| 天天影视网天天综合色在线播放| av不卡在线看| 精品福利一区二区三区| 成人黄色大片在线观看| 日韩一级高清毛片| 国产精品99久久久久久有的能看| 在线91免费看| 国产成人精品影视| 欧美一二三四区在线| 国产精品一区二区在线播放| 欧美视频一区二区在线观看| 日韩福利视频网| 久久中文在线| 调教+趴+乳夹+国产+精品| 国产女主播一区二区| 亚洲一区视频在线| 欧美综合77777色婷婷| 一区二区三区美女| 国产精品一区二区三区免费观看| 亚洲视频电影在线| 99riav国产精品| 亚洲乱码精品一二三四区日韩在线| 狠狠色丁香久久综合频道| 国产精品理论在线观看| 韩国精品一区二区三区| 亚洲色图欧美在线| 国产亚洲在线观看| 午夜精品免费在线| 欧洲精品一区二区三区在线观看| 美女网站色91| 日韩一区二区在线看| 成人av网站大全| 国产日韩欧美不卡| 亚洲美女一区| 日本成人在线网站| 制服丝袜亚洲网站| 99久久免费视频.com| 国产精品国产三级国产三级人妇| 在线观看福利一区| 亚洲第一电影网| 欧美日韩免费不卡视频一区二区三区| 国产成人精品一区二| 国产蜜臀av在线一区二区三区| 欧美啪啪一区| 亚洲欧美日韩中文播放| 六月丁香综合| 奇米影视在线99精品| 欧美一卡二卡在线| 亚洲欧美亚洲| 亚洲国产成人高清精品| 欧美午夜理伦三级在线观看| 北条麻妃国产九九精品视频| 国产精品国产三级国产| 久久久精品五月天| 国产精品18久久久久久久久久久久| 69堂精品视频| 91免费看视频| 一区二区三区蜜桃网| 中文字幕乱码亚洲精品一区| 欧美一区久久| 国产精品乱码一区二三区小蝌蚪| 国产视频一区在线观看一区免费| 日本一区中文字幕| 88在线观看91蜜桃国自产| eeuss影院一区二区三区| 亚洲色图都市小说| 欧美性一区二区| 色综合久久中文综合久久牛| 亚洲午夜久久久久久久久电影网 | 成人激情校园春色| 亚洲视频一区在线| 欧美日韩一级二级| 成人动漫一区二区在线| 久久性天堂网| 国产河南妇女毛片精品久久久| 久久综合九色综合欧美就去吻| 亚洲美女少妇无套啪啪呻吟| 日本亚洲免费观看| 欧美变态tickling挠脚心| 国内精品国语自产拍在线观看| 日产欧产美韩系列久久99| 精品国产乱码久久久久久1区2区| 亚洲欧洲在线一区| 国产资源精品在线观看| 国产精品麻豆99久久久久久| 色婷婷精品久久二区二区蜜臂av| 福利一区福利二区| 亚洲精品自拍动漫在线| 欧美一卡二卡在线| 久久电影一区| 91欧美一区二区| 欧美色男人天堂| 午夜伦理一区二区| 日韩三级伦理片妻子的秘密按摩| 狠狠88综合久久久久综合网| 六月丁香婷婷色狠狠久久| 久久久美女艺术照精彩视频福利播放| 国产美女一区| 92精品国产成人观看免费| 日韩二区在线观看| 国产精品色呦呦| 欧美三区在线观看| 国语精品中文字幕| 国产高清在线精品| 夜夜精品视频一区二区| 日韩一级片网址| 亚洲一区二三| 91片黄在线观看| 久久精品72免费观看| 欧美一区二区三区在| 六月天综合网| 欧美一区1区三区3区公司| 日本一区中文字幕| 国产精品伦理在线| 日韩一本二本av| 一本一道波多野结衣一区二区| 9l国产精品久久久久麻豆| 日本三级亚洲精品| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 蘑菇福利视频一区播放| 97精品电影院| 国产综合网站| 午夜在线成人av| 亚洲图片欧美激情| 欧美成人午夜电影| 欧美日韩精品欧美日韩精品一 | 国产成人免费视频精品含羞草妖精| 亚洲国产三级在线| 亚洲国产激情av| 日韩一区二区免费在线观看| 午夜综合激情| 国语自产精品视频在线看抢先版结局| 高清不卡一二三区| 国内成+人亚洲+欧美+综合在线| 午夜电影一区二区三区| 中文字幕日韩一区二区| 国产午夜精品一区二区三区视频| 欧美一级二级三级乱码| 欧美日韩一区二区三区不卡| 裸体一区二区| 一本一道久久综合狠狠老精东影业 | 香港久久久电影| 欧美在线二区| 成人国产精品免费观看动漫| 国产一区二三区| 日韩电影一区二区三区四区| 亚洲精品日日夜夜| 国产精品久久久久久妇女6080| 久久影院视频免费| 日韩精品一区在线| 欧美一区二区三区四区久久| 欧美日韩国产区一| 欧美色图片你懂的| 欧美性受xxxx黑人xyx性爽| 色哟哟一区二区在线观看 | 99久久精品情趣| 成人妖精视频yjsp地址| 国产在线精品一区二区不卡了| 久久99精品国产.久久久久| 卡一卡二国产精品| 亚洲一二三专区| 亚洲一级不卡视频| 亚洲精品免费视频| 一区二区三区精品视频| 亚洲欧美激情视频在线观看一区二区三区| 国产精品电影一区二区| 国产精品欧美精品| 国产精品不卡视频| 1024精品合集| 亚洲免费毛片网站| 亚洲精品成人天堂一二三| 亚洲精品视频免费看| 一区二区三区精品视频在线| 亚洲综合区在线| 亚洲www啪成人一区二区麻豆| 亚洲国产婷婷综合在线精品| 亚洲超碰精品一区二区| 青青草成人在线观看| 精品一区二区免费| 国产99久久久国产精品潘金| 成人黄色777网| 欧美99久久| 伊人久久大香线蕉综合热线| 99国产精品自拍| 国产精品日本| 色哟哟在线观看一区二区三区| 91久久精品一区二区三| 欧美色大人视频| 日韩一区国产二区欧美三区| 久久久亚洲精品一区二区三区| 国产欧美一区二区三区鸳鸯浴| 成人欧美一区二区三区视频网页| 亚洲国产视频网站|