我想知道用Python方式通过两个键对元组列表进行排序的方式,从而用一个(只有一个)键进行排序将是相反的顺序,而用另一个键进行排序将是不区分大小写的。更具体地说,我有一个包含元组的列表,例如:
myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
我可以使用以下代码对它们进行两个键排序:
sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
要以相反的顺序排序,我可以使用
sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
但这会用两个键以相反的顺序排序。
任何提示,不胜感激。
当我们需要对具有两个约束的列表进行排序时,将使用两个键,一个约束以升序排序,另一个约束以降序排序在同一列表中或任意列表中。 在您的示例 sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))中,只能以一种顺序对整个列表进行排序, 您可以尝试这些并检查发生了什么
sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1])) sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1])) sortedList = sorted(myList, key = lambda y: (-y[0].lower(), -y[1]))
希望你以后能理解;)