欢迎访问宙启技术站
智能推送

如何在Python中使用内置函数排序列表?

发布时间:2023-06-20 05:40:18

在Python中,内置函数可以帮助我们对列表进行排序。列表可以是数字型列表,字符串列表,甚至是混合列表。在本文中,我们将介绍如何使用内置函数排序列表。

内置函数排序列表的目的是重新排列已有元素,按照某种方式进行排序。排序函数提供了一种从数据集中获得有用信息的方式,可以使数据更易于使用和理解。

Python提供了两种方法来排序列表: sorted()函数和sort()方法。两者的区别在于,sort()方法将原始列表排序,而sorted()函数返回一个已排序的新列表。下面我们将介绍这两种方法的使用方式。

1. sorted()函数

sorted()函数可以用来对列表进行排序。该函数将返回一个新的已排序的列表,不改变原始列表。这个函数有两个参数: iterable和key。iterable参数是一个要排序的可迭代对象,如列表或元组。key参数是一个可选的函数,用于从每个元素中提取一个值来排序。

以下是一个使用sorted()函数排序数字列表的示例:

list1 = [3, 1, 7, 4, 8, 2, 9, 5, 6]
sorted_list1 = sorted(list1)
print(sorted_list1)

输出结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

以下是一个使用sorted()函数排序字符串列表的示例:

list2 = ['apple', 'pear', 'banana', 'orange']
sorted_list2 = sorted(list2)
print(sorted_list2)

输出结果为:

['apple', 'banana', 'orange', 'pear']

使用sorted()函数按照元素某个属性排序:

class Student():
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def __str__(self):
        return self.name + ": " + str(self.score)

students = [
             Student("Tom", 87),
             Student("Jack", 76),
             Student("Lucy", 92),
             Student("Bob", 68),
             Student("Amy", 88)
]

sorted_students = sorted(students, key=lambda x: x.score)
for student in sorted_students:
    print(student)

输出结果为:

Bob: 68
Jack: 76
Tom: 87
Amy: 88
Lucy: 92

2. sort()方法

sort()方法是list对象的方法,用于在原位对列表进行排序,也就是改变了原始列表。sort()方法没有返回值,但是会将原列表排序。

以下是一个使用sort()方法排序数字列表的示例:

list1 = [3, 1, 7, 4, 8, 2, 9, 5, 6]
list1.sort()
print(list1)

输出结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

以下是一个使用sort()方法排序字符串列表的示例:

list2 = ['apple', 'pear', 'banana', 'orange']
list2.sort()
print(list2)

输出结果为:

['apple', 'banana', 'orange', 'pear']

使用sort()方法按照某个元素属性排序:

class Student():
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def __str__(self):
        return self.name + ": " + str(self.score)

students = [
             Student("Tom", 87),
             Student("Jack", 76),
             Student("Lucy", 92),
             Student("Bob", 68),
             Student("Amy", 88)
]

students.sort(key=lambda x: x.score)
for student in students:
    print(student)

输出结果:

Bob: 68
Jack: 76
Tom: 87
Amy: 88
Lucy: 92

以上就是使用内置函数对列表排序的方法,在使用时我们需要根据自己的需求选择适合的方法进行排序,以便快速高效地完成数据处理。