pob*_*123 11 python key ordereddictionary
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))
Run Code Online (Sandbox Code Playgroud)
我试图从有序的dict获取所有键,所以我可以迭代它但运行错误后发生: 点击图片
ars*_*sho 15
添加新答案是一个很老的线程.但当我遇到类似的问题并寻找它的解决方案时,我来回答这个问题.
这是一种简单的方法,我们可以在Python 3中排序字典(在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']
Run Code Online (Sandbox Code Playgroud)
UPD.对于Python> = 3.6,您需要这样做
sorted_fruit_list = [i for i in od.keys()]
对于那些来到这里的人来说,当他们真正想要的是这样的时候:
dict_keys = list(my_dict.keys())
Run Code Online (Sandbox Code Playgroud)
在 Python 中实例化对象的正确方法是这样的:
pomocna = collections.OrderedDict() # notice the parentheses!
Run Code Online (Sandbox Code Playgroud)
您正在分配对class的引用。