在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()
方法可以接受两个可选参数,reverse
和key
,用法与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()
方法对列表进行排序,并且讲解了如何指定排序的关键字。同时,还提供了两个示例说明,希望对您有所帮助!