sort方法对列表进行排序?
发布时间:2023-05-23 11:59:39
Python中的sort()方法是一个内置的方法,用于对列表进行排序。该方法将其参数直接在原列表上进行修改,并不返回一个新的列表。
sort()方法有两种情况需要注意,一种是对数字和字母进行排序,一种是对列表中嵌套的列表进行排序。
1. 对数字和字母进行排序
当Sort()方法对数字和字母进行排序时,它按照ASCII码的顺序排序。对于数字,由于0在ASCII码表中比1早,所以数字0会出现在前面。
例如,我们可以像这样对一个数字列表排序:
numbers = [5, 3, 8, 1, 6] numbers.sort() print(numbers)
以上代码的输出结果为:
[1, 3, 5, 6, 8]
如果我们想按照逆序排列列表,我们可以使用方法的reverse参数:
numbers = [5, 3, 8, 1, 6] numbers.sort(reverse=True) print(numbers)
以上代码的输出结果为:
[8, 6, 5, 3, 1]
对于字母,也是按照ASCII码的顺序排序的。这意味着小写字母在大写字母之前排列。
例如,我们可以这样对字母列表排序:
letters = ['a', 'g', 'c', 'd', 'f', 'b', 'e'] letters.sort() print(letters)
以上代码的输出结果为:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
2. 对嵌套列表进行排序
当对嵌套列表进行排序时,可以使用sort()方法的key参数来指定排序的依据。
例如,我们可以像这样对包含字典的列表进行排序:
people = [{'name': 'John', 'age': 25}, {'name': 'Sarah', 'age': 23}, {'name': 'Bill', 'age': 30}]
people.sort(key=lambda person: person['age'])
print(people)
以上代码的输出结果为:
[{'name': 'Sarah', 'age': 23}, {'name': 'John', 'age': 25}, {'name': 'Bill', 'age': 30}]
在上面的示例中,我们指定了一个lambda函数来获取每个字典的“age”值,即人物的年龄,并将其用作排序的依据。
使用这种方法也可以对更深层次的嵌套列表进行排序,只需指定正确的键即可。
data = [{'name': 'John', 'age': 25, 'locations': {'home': 'new york', 'work': 'san francisco'}},
{'name': 'Bill', 'age': 30, 'locations': {'home': 'chicago', 'work': 'new york'}},
{'name': 'Sarah', 'age': 23, 'locations': {'home': 'austin', 'work': 'chicago'}}]
data.sort(key=lambda person: person['locations']['work'])
print(data)
以上代码的输出结果为:
[{'name': 'Sarah', 'age': 23, 'locations': {'home': 'austin', 'work': 'chicago'}},
{'name': 'Bill', 'age': 30, 'locations': {'home': 'chicago', 'work': 'new york'}},
{'name': 'John', 'age': 25, 'locations': {'home': 'new york', 'work': 'san francisco'}}]
在上面的示例中,我们指定的Lambda函数获取了每个人的工作位置,然后使用它来排序数据列表。
总结:
sort()方法是Python中常用的列表排序方法,它按照ASCII码来排序,并可以通过key参数对嵌套列表进行排序。使用sort()时要注意该方法直接在原列表上进行修改,而不是返回一个新的列表。
