具有多个属性的列表的有效排序
在管理列表列表时,有必要根据特定属性对它们进行有效排序。当我们需要同时按多个属性排序时,就会出现一种常见情况,例如对颜色和高度列表进行排序。
考虑以下列表:
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
通常,按可以使用sorted(s, key = itemgetter(1)) 来实现单个属性。然而,对于多个属性,存在更有效的方法。
键可以定义为返回元组的函数。通过使用 lambda 函数或 itemgetter,我们可以创建一个考虑多个属性的键:
Lambda 函数:
s = sorted(s, key = lambda x: (x[1], x[2]))
使用 Itemgetter(更快) :
import operator s = sorted(s, key = operator.itemgetter(1, 2))
此外,排序方法可以是直接与提供的键一起使用:
s.sort(key = operator.itemgetter(1, 2))
使用这种方法,列表将根据指定的属性进行有效排序。此方法速度相当快,并且避免了不必要的 Python 函数调用。
以上是如何在Python中对具有多个属性的列表进行高效排序?的详细内容。更多信息请关注PHP中文网其他相关文章!