我已经创建了一个dict列表,我想根据dict中的一个元素(句点)进行排序
T=dict()
def TaskGenerator(N):
for i in range (0,N):
ExcTime=randint(1,20)
Period=randint(1,20)+ExcTime
Uterlization=ExcTime/Period
T[i]={'ID':i+1 , 'ExcTime' : ExcTime, 'Period' : Period, 'Uterlization':Uterlization}
sorted(T,key=lambda x:x['Period'])
TaskGenerator(6)
但是,它给了我一个错误:
^{pr2}$我认为这意味着在“排序”函数中,在lambda函数中,“x”是一个整数。但我真的不明白,“x”不是t[I]的瞬间吗(例如t[1],在python中是dict类型的)。为什么它抱怨“x”是个整数?在
你在整理字典,这是不可能的。你能做的是用列表代替。在
样本输出:
^{pr2}$dict
上的迭代在键上,这些键是不可下标的int(int上没有['Period']
)。在另外,您没有分配
sorted
的结果。试试这个:当您尝试对
dict
排序时,得到的是键。由于您的键都是整数,sorted
会根据您提供的key
按正确的顺序给您。但是,您需要的是按排序顺序排列的dict
的元素。要获取元素,可以使用T.values()
。在使用这些值,
TaskGenerator()
函数将如下所示请注意,
T.values()
生成一个新的项列表,您必须return
该列表才能在函数之外引用它。在相关问题 更多 >
编程相关推荐