Python:访问元组内部的字典值,并通过dict值快速排序

时间:2010-06-09 04:22:36

标签: python dictionary sorting tuples

我知道不清楚。这是我正在做的具体事情。我在这里有我的词典列表:

dict = [{int = 0,value = A},{int = 1,value = B},... n]

我希望将它们组合起来,所以我使用了itertools并且它给了我一个元组(好吧,它给了我一个内存对象,然后我使用枚举,所以我可以循环它并枚举给ma元组) :

枚举中的(index,tuple)

(组合(dict,2)):

这就是我遇到问题的地方。我想确定组合中的两个项目中哪一个具有更大的'int'值,哪个具有更小的值并将它们分配给变量(我实际上在组合中使用了2个以上,所以我不能说如果元组[0] ['int']>元组[1] ['int']并完成任务,因为我必须多次列出这个并且很难​​管理。

我打算将每个'int'值分配给一个变量,在列表中对它进行排序,将列表中的'int'值索引为1,2,3,4,5 ......等等,然后去返回并通过int值访问我想要的字典,然后将字典分配给变量,以便我知道哪个更大。但是我有一个很大的列表,列表和变量赋值是资源密集型的,这需要很长时间(我只写了一点,并且它需要永远运行)。

所以我希望有人知道一个快速的方法来做到这一点。我实际上可以使用if / thens列出每个可能的assignmnet组合,但它就像5个if / thens和assignments页面,当我想要更改它时很难阅读和管理。

你可能已经收集了这个,但我是编程新手.thx

1 个答案:

答案 0 :(得分:2)

for (index, tuple) in enumerate(combinations(dict, 2)):
    thesmall = min(tuple, key=lambda d: d['int'])
    thelarge = max(tuple, key=lambda d: d['int'])

如果您需要的不仅仅是最小值和最大值,那么

    inorder = sorted(tuple, key=lambda d: d['int'])

并且根据需要按顺序排列所有的词组。