【发布时间】:2012-12-11 16:23:40
【问题描述】:
我有一个多维列表,我想对两个数字元素的组合权重进行排序,例如,结果使用:sorted(results, key=operator.itemgetter(2,3))
[..,1,34]
...
...
[..,10,2]
[..,11,1]
[..,13,3]
[..,13,3]
[..,13,3]
[..,16,1]
[..,29,1]
itemgetter 的问题是先按元素 2 排序,然后按元素 3,其中 我想将 13,3 放在顶部/底部(取决于 asc/desc 排序)。
这可能吗?如果可以,怎么做。
非常感谢
编辑 1。
对不起,我正在处理 dom 数据,来自搜索页面的结果,可以这么说,它是一个通用的搜索引擎搜索器。
我正在做的是找到 a 和 div 标签,然后我创建一个特定类或 id 出现在 div/a 标签上的项目的计数,这是元素 2,然后我再次重新扫描找到的标签列表并查看标签的其他类/id 与正在处理的当前标签的总数相匹配,因此在这种情况下,项目 13,3 与该类型标签的类/id 匹配 13 个,3 表示还有 3 个其他标签具有相同次数的类/ID,因此为什么我希望这样排序,不,它不是字典,它绝对是一个列表。
谢谢。
【问题讨论】:
-
你没有有一个多维列表/字典。你有一个具有元组键的字典。这是非常不同的,因为它意味着例如
(0,1)和(0,2)键的共同点与foo和bar一样多。 -
为什么13,3应该在顶部或底部? 13 和 3 都不是最小值或最大值。
-
你能把你的问题说得更清楚吗?您想使用的排序算法到底是什么?例如,为什么 (13,3) 会在顶部?
-
为什么你认为
[..,13,3]应该在顶部/底部? -
“组合加权”是什么意思?
标签: python list sorting multidimensional-array