python给list排序的简单方法

  • Post category:Python

在Python中,可以使用内置函数sorted()和列表的sort()方法来对列表进行排序。这两种方法都可以对列表进行升序或降序排序,并且可以指定排序的关键字。

使用sorted()函数对列表排序

sorted()函数可以对列表进行排序,并返回一个新的排序后的列表,原列表不会被修改。sorted()函数可以接受一个可迭代对象作为参数,例如列表、元组、集合等。

对列表进行升序排序

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 对列表进行升序排序
sorted_list = sorted(my_list)

print(sorted_list)  # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

对列表进行降序排序

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 对列表进行降序排序
sorted_list = sorted(my_list, reverse=True)

print(sorted_list)  # 输出: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

指定排序的关键字

sorted()函数还可以接受一个key参数,用于指定排序的关键字。关键字可以是一个函数,也可以是一个lambda表达式。

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

# 按照字符串长度进行排序
sorted_list = sorted(my_list, key=len)

print(sorted_list)  # 输出: ['pear', 'apple', 'banana', 'orange']

使用sort()方法对列表排序

sort()方法可以对列表进行排序,并修改原列表。sort()方法可以接受两个可选参数,reversekey,用法与sorted()函数相同。

对列表进行升序排序

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 对列表进行升序排序
my_list.sort()

print(my_list)  # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

对列表进行降序排序

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 对列表进行降序排序
my_list.sort(reverse=True)

print(my_list)  # 输出: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

指定排序的关键字

sort()方法也可以接受一个key参数,用于指定排序的关键字。关键字可以是一个函数,也可以是一个lambda表达式。

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

# 按照字符串长度进行排序
my_list.sort(key=len)

print(my_list)  # 输出: ['pear', 'apple', 'banana', 'orange']

示例一:对列表中的元素按照绝对值大小进行排序

my_list = [-3, 1, -4, 1, 5, -9, 2, 6, -5, 3, 5]

# 对列表中的元素按照绝对值大小进行排序
sorted_list = sorted(my_list, key=abs)

print(sorted_list)  # 输出: [1, 1, 2, 3, -3, -4, 5, -5, 5, 6, -9]

示例二:对列表中的字典按照某个键的值进行排序

my_list = [{'name': 'Tom', 'age': 18}, {'name': 'Lucy', 'age': 19}, {'name': 'Jack', 'age': 20}]

# 对列表中的字典按照age键的值进行排序
sorted_list = sorted(my_list, key=lambda x: x['age'])

for item in sorted_list:
    print(item)

输出结果为:

{'name': 'Tom', 'age': 18}
{'name': 'Lucy', 'age': 19}
{'name': 'Jack', 'age': 20}

以上就是Python给列表排序的简单方法的完整攻略,包括使用sorted()函数和sort()方法对列表进行排序,并且讲解了如何指定排序的关键字。同时,还提供了两个示例说明,希望对您有所帮助!