web-dev-qa-db-ja.com

順序付き辞書からすべてのキーを取得する方法は?

def izracunaj_dohvatljiva_stanja(funkcije_prijelaza):
    dohvatljiva = []
    dohvatljiva.extend(pocetno_stanje)
    pomocna = collections.OrderedDict
    for i in xrange(len(dohvatljiva)):
        for temp in pomocna.keys(): <-----------------------------------this line
            if temp.split(',')[0] == dohvatljiva[i]:
                if funkcije_prijelaza.get(temp) not in dohvatljiva:
                    dohvatljiva.extend(funkcije_prijelaza.get(temp))

私はそれを反復できるように順序付けられたdictからすべてのキーを取得しようとしていますが、実行エラーが発生した後: picをクリック

11
pobro123

新しい答えを追加するのはかなり古いスレッドです。しかし、私が同様の問題に直面し、その解決策を探したとき、私はこれに答えるようになりました。

これは簡単な方法です。Python 3(Prior to Python 3.6)で辞書をソートできます。

_import collections
d={
    "Apple": 5,
    "Banana": 95,
    "Orange": 2,
    "Mango": 7
}
# sorted the dictionary by value using OrderedDict
od = collections.OrderedDict(sorted(d.items(), key=lambda x:x[1]))
print(od)
# OrderedDict([('Orange', 2), ('Apple', 5), ('Mango', 7), ('Banana', 95)])
sorted_fruit_list = list(od.keys())
print(sorted_fruit_list)
# ['Orange', 'Apple', 'Mango', 'Banana']
_

pdate: Python> = 3.6の場合、これを行う必要があります
sorted_fruit_list = [i for i in od.keys()]

15
arsho

Pythonでオブジェクトをインスタンス化する正しい方法は次のとおりです:

pomocna = collections.OrderedDict() # notice the parentheses! 

classへの参照を割り当てていました。

4
Óscar López