欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中的set實(shí)現(xiàn)不重復(fù)的排序原理

 更新時(shí)間:2018年01月24日 15:42:02   作者:廖Sir  
這篇文章主要介紹了python中的set實(shí)現(xiàn)不重復(fù)的排序原理,需要的朋友可以參考下

最近在嘗試寫選課系統(tǒng)的時(shí)候遇到一個(gè)問題:

  1、存在兩個(gè)類 School、Teacher ;

  2、School實(shí)例中包含多個(gè)Teacher的實(shí)例,但又不可重復(fù)

  本人想到在School中用set()存儲(chǔ),但是添加Teacher實(shí)例的時(shí)候做不到去重,后來猜測應(yīng)該是set會(huì)自動(dòng)調(diào)用__eq__方法比較對象是否重復(fù),因此重寫了該方法:

def __eq__(self, other):
  return self.name == other.name

   結(jié)果仍然報(bào)錯(cuò)TypeError: unhashable type,如下:

  研究了很久,發(fā)現(xiàn)Teacher無法hash的原因是該類中缺少__hash__方法,導(dǎo)致解釋器不知道如何哈希該對象,添加以下代碼后問題解決:

  def __hash__(self):
    return hash(self.name) 

  綜上發(fā)現(xiàn):

  如果想要將對象用set去重,需要重寫__eq__和__hash__兩個(gè)方法。

總結(jié)

以上所述是小編給大家介紹的python中的set實(shí)現(xiàn)不重復(fù)的排序原理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Pytorch mask_select 函數(shù)的用法詳解

    Pytorch mask_select 函數(shù)的用法詳解

    今天小編就為大家分享一篇Pytorch mask_select 函數(shù)的用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 從列表或字典創(chuàng)建Pandas的DataFrame對象的方法

    從列表或字典創(chuàng)建Pandas的DataFrame對象的方法

    這篇文章主要介紹了從列表或字典創(chuàng)建Pandas的DataFrame對象的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python之如何復(fù)制excel模板并保留表格樣式

    python之如何復(fù)制excel模板并保留表格樣式

    這篇文章主要介紹了python之如何復(fù)制excel模板并保留表格樣式問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python進(jìn)階學(xué)習(xí)修改閉包內(nèi)使用的外部變量

    Python進(jìn)階學(xué)習(xí)修改閉包內(nèi)使用的外部變量

    這篇文章主要為大家介紹了Python進(jìn)階學(xué)習(xí)修改閉包內(nèi)使用的外部變量實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Django實(shí)現(xiàn)將一個(gè)字典傳到前端顯示出來

    Django實(shí)現(xiàn)將一個(gè)字典傳到前端顯示出來

    這篇文章主要介紹了Django實(shí)現(xiàn)將一個(gè)字典傳到前端顯示出來,具有很好的參考價(jià)值,希望
    2020-04-04
  • Python使用Joblib模塊實(shí)現(xiàn)加快任務(wù)處理速度

    Python使用Joblib模塊實(shí)現(xiàn)加快任務(wù)處理速度

    在Python編程中,處理大規(guī)模數(shù)據(jù)或者進(jìn)行復(fù)雜的計(jì)算任務(wù)時(shí),通常需要考慮如何提高程序的運(yùn)行效率,本文主要介紹了如何使用Joblib模塊來加快任務(wù)處理速度,需要的可以參考下
    2024-03-03
  • pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例

    pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例

    今天小編就為大家分享一篇pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 使用Pandas的ExcelWriter操作excel的方法

    使用Pandas的ExcelWriter操作excel的方法

    這篇文章主要介紹了使用Pandas的ExcelWriter操作excel的方法,ExcelWriter這個(gè)插件有個(gè)坑,就是已經(jīng)設(shè)置好的格式是無法更改的,因此,由pandas轉(zhuǎn)成excel的時(shí)候,必須將格式清除,尤其是表頭的格式需要大家多多注意,本文結(jié)合示例代碼講解的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • 用Python實(shí)現(xiàn)KNN分類算法

    用Python實(shí)現(xiàn)KNN分類算法

    這篇文章主要為大家詳細(xì)介紹了用Python實(shí)現(xiàn)KNN分類算法的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 關(guān)于numpy.polyfit()與Stats.linregress()方法最小二乘近似擬合斜率對比

    關(guān)于numpy.polyfit()與Stats.linregress()方法最小二乘近似擬合斜率對比

    這篇文章主要介紹了關(guān)于numpy.polyfit()與Stats.linregress()方法最小二乘近似擬合斜率對比,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論