按降序和升序对列表进行排序
给定一个包含两个元素的列表,目标是对列表进行排序首先根据第一个元素按降序排列,然后根据第二个元素按升序排列。
为了实现这一点,我们可以利用 sort() 方法和自定义键函数。这是一个解决方案:
<code class="python">L = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]] L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>
sort() 方法的关键参数指定一个确定排序顺序的函数。在本例中,我们定义了一个 lambda 函数,它接受一个列表 k 并返回一个元组。元组的第一个元素是列表k[0]的第一个元素,用于降序排序。第二个元素是列表第二个元素的否定 -k[1],用于升序排序。
通过先降序排序,reverse=True 保证每个列表的第一个元素('a' 或 'b') 按相反的字母顺序排序。随后,对第二个元素进行升序排序,整个列表排序为:
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
这有效地实现了所需的排序标准。
以上是如何按降序和升序对列表列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!