Python列表具有内置list . sort()就的方法,可以在原地修改列表。还有一个排序()内置的函数从迭代构建一个新的排序列表。在本文中,我们将探讨使用Python排序数据的各种技术。
请注意,()原始数据被破坏,排序()没有对原始数据进行操作,而是新建了一个新数据。
最基本的排序很简单,只要使用排序()函数即可返回一个新的排序的列表
祝辞祝辞祝辞排序([5,2、3、1、4]) (1、2、3、4、5)
咱们也可以使list . sort()就用方法。该方法是对列表列表进行的原地操作(原数据被修改,已经不是原来的本来面目)。一般情况下,不如使用排序()方便,但是如果你不需要原列表列表,使用排序()会更具效率。
在祝辞祝辞=[5,2、3、1、4) 在祝辞祝辞类似() 在祝辞祝辞;#发生改变 (1、2、3、4、5)
另一个不同点,list . sort()就<代码> 代码>方法只能应用于列表对象数据。而排序()却可以对任何可迭代对象进行排序。也就是说排序()更具有普遍使用性。这里大灯建议初学者使用排序()。
list . sort()就
和排序()都有关键参数,可以指定函数来对元素进行排序。
例如,这里我们使用一个字符串(字符串也是可迭代对象)
在祝辞祝辞排序(“这是一个测试字符串从安德鲁”.split()键=str.lower) (“a”,“安德鲁”,“从”,“是”,“弦”,“测试”,'这']
我们指定按照首字符(统一变为小写后的字符)进行排序。关键参数的值是一个带有单一参数的函数,返回一个键主要用于排序。这种技术运行挺快的,具体为啥,我不懂。
例如:
在祝辞祝辞student_tuples=[ …(“约翰”,“一个”,15), …(“简”、“B”, 12), …(“大卫”、“B”, 10)) 祝辞祝辞祝辞排序(student_tuples关键=λ学生:学生[2]) " " "
通关键排过序。
键的值:λ函数
λ函数的参数是student_tuples列表中的元素——元组
λ函数运算的是student_tuples列表元素中元组的第三个元素。
”“” ((“大卫”、“B”, 10),(“简”、“B”, 12),(“约翰”,“‘,15)]
同样该方法也可作用于对象的属性,例如这里我先定义一个属性
在在在类学生: …def __init__(自我、姓名、年级、年龄): …self.name=名字 …自我。年级=年级 …自我。年龄=年龄 …def __repr__(自我): …返回repr ((self.name自我。年级,self.age)) 在在在student_objects=[ …学生(“约翰”,“一个”,15), …学生(“简”、“B”, 12), …学生(“大卫”、“B”, 10)) 在在在排序(student_objects关键=λ学生:student.age) ((“大卫”、“B”, 10),(“简”、“B”, 12),(“约翰”,“‘,15)]
上面列的那些关键函数方法都是非常常见,所以说python提供简洁高效的方法,算子库有itemgetter (), attrgetter (), methodcaller()这三个方法。
使用上面提到的算子库的方法,也可以实现上述例子,而且更简单,运行更快。
在在在从运营商进口itemgetter attrgetter 在在在排序(student_tuples、关键=itemgetter (2)) ((“大卫”、“B”, 10),(“简”、“B”, 12),(“约翰”,“‘,15)) 在在在排序(student_objects、关键=attrgetter(年龄)) ((“大卫”、“B”, 10),(“简”、“B”, 12),(“约翰”,“‘,15)]
操作符库的方法可以提供多维度排序,例如我们队成绩和年龄同时排的序,但成绩的优先级高于年龄。
在在在排序(student_tuples、关键=itemgetter (1、2) [(“约翰”,“一个”,15),(“大卫”,“B”, 10),(“简”、“B”, 12)) 在在在排序(student_objects、关键=attrgetter(“年级”,“年龄”)) [(“约翰”,“一个”,15),(“大卫”,“B”, 10),(“简”、“B”, 12)]
list . sort()就
和排序()都可以通过反向参数(真或假)进行升降序调整。这里我们对学生数据中年龄年龄进行翻转排序规则。
在在在排序(student_tuples关键=itemgetter(2),反向=True) [(“约翰”,“一个”,15),(“简”、“B”, 12),(“大卫”,“B”, 10)) 在在在排序(student_objects关键=attrgetter(年龄),反向=True) [(“约翰”,“一个”,15),(“简”、“B”, 12),(“大卫”,“B”, 10)]python中对数据进行各种排序的方法