第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使類數(shù)據(jù)可排序

如何使類數(shù)據(jù)可排序

躍然一笑 2021-03-08 08:10:46
這肯定是重復(fù)的,但是說我有一個如下的類:class MyObj(object):    def __init__(self, *args, **kwargs):        self._data = [2, 1, 3]        self._more_data = [False, True, False]如何使它可排序,而不是針對其他MyObj對象(我可以對它進(jìn)行排序__lt__),而是在內(nèi)部進(jìn)行排序?因此,如果我打電話給sorted(my_obj_instance)我,我得到的數(shù)據(jù)如下:self._data = [1,2,3]self._more_data [True, False, False]即,_data按數(shù)字排序,而_more_data已相應(yīng)排序。
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個贊

sorted() 從不修改原始數(shù)據(jù)。為了使其與自定義對象一起使用,您必須實(shí)現(xiàn)__iter__(返回例如iter(self._data))-但這只會為您提供該對象的排序版本,并且既不會修改原始對象,也不會對兩個列表都進(jìn)行排序。

您想要的是一種sort()稱為的方法yourobj.sort()。然后,此方法將.sort()使用key您希望它們排序的方式的適當(dāng)參數(shù)調(diào)用列表。


查看完整回答
反對 回復(fù) 2021-03-30
?
揚(yáng)帆大魚

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個贊

您不能使sortedreturn類的實(shí)例。 sorted總是返回一個列表。如果將其設(shè)為迭代器,則可以sorted返回類數(shù)據(jù)的排序版本(作為列表)。但是,僅給您的類一個sort對數(shù)據(jù)進(jìn)行排序的方法可能會更簡單。


查看完整回答
反對 回復(fù) 2021-03-30
  • 3 回答
  • 0 關(guān)注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號