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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何按插入順序從字典中檢索項(xiàng)目?

如何按插入順序從字典中檢索項(xiàng)目?

胡子哥哥 2019-12-16 12:12:11
是否可以按插入順序從Python字典中檢索項(xiàng)目?
查看完整描述

3 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

dict如果您使用的是CPython 3.6+(或其他任何Python實(shí)現(xiàn)的Python 3.7+),則默認(rèn)情況下,標(biāo)準(zhǔn)Python會(huì)執(zhí)行此操作。


在舊版本的Python上,您可以使用collections.OrderedDict。


查看完整回答
反對(duì) 回復(fù) 2019-12-17
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

其他答案是正確的。這是不可能的,但是您可以自己編寫。但是,如果您不確定如何實(shí)際實(shí)現(xiàn)這樣的東西,這是一個(gè)完整且有效的實(shí)現(xiàn),該類將我剛剛編寫和測(cè)試的dict子類化。(請(qǐng)注意,傳遞給構(gòu)造函數(shù)的值的順序是不確定的,但是會(huì)在以后傳遞值之前出現(xiàn),并且您始終可以始終不允許使用值初始化有序的dict。)


class ordered_dict(dict):

    def __init__(self, *args, **kwargs):

        dict.__init__(self, *args, **kwargs)

        self._order = self.keys()


    def __setitem__(self, key, value):

        dict.__setitem__(self, key, value)

        if key in self._order:

            self._order.remove(key)

        self._order.append(key)


    def __delitem__(self, key):

        dict.__delitem__(self, key)

        self._order.remove(key)


    def order(self):

        return self._order[:]


    def ordered_items(self):

        return [(key,self[key]) for key in self._order]



od = ordered_dict()

od["hello"] = "world"

od["goodbye"] = "cruel world"

print od.order()            # prints ['hello', 'goodbye']


del od["hello"]

od["monty"] = "python"

print od.order()            # prints ['goodbye', 'monty']


od["hello"] = "kitty"

print od.order()            # prints ['goodbye', 'monty', 'hello']


print od.ordered_items()

# prints [('goodbye','cruel world'), ('monty','python'), ('hello','kitty')]



查看完整回答
反對(duì) 回復(fù) 2019-12-17
?
翻翻過去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

使用OrderedDict(),從2.7版本開始可用


只是出于好奇:


from collections import OrderedDict

a = {}

b = OrderedDict()

c = OredredDict()


a['key1'] = 'value1'

a['key2'] = 'value2'


b['key1'] = 'value1'

b['key2'] = 'value2'


c['key2'] = 'value2'

c['key1'] = 'value1'


print a == b #True

print a == c #True

print b == c #False



查看完整回答
反對(duì) 回復(fù) 2019-12-17
  • 3 回答
  • 0 關(guān)注
  • 316 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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