Python之列表和字典排序
在Python中,对列表(list)和字典(dictionary)进行排序是很常见的操作。
列表排序
列表排序可以使用 sort()
方法或 sorted()
函数。
使用 sort()
方法:
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]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
或者使用 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]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
默认情况下,它们都是按照升序排序。如果你想按照降序排序,可以设置 reverse=True
:
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]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
或者:
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]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
还可以通过 key
参数指定一个函数,来按照特定的条件进行排序。例如,如果你有一个字符串列表,你可以按照字符串的长度进行排序:
my_list = ['apple', 'banana', 'cherry', 'date']
my_list.sort(key=len)
print(my_list)
#打印结果:
#['date', 'apple', 'banana', 'cherry']
- 1
- 2
- 3
- 4
- 5
- 6
- 7
字典排序
字典排序稍微复杂一些,因为字典是无序的。要排序字典,你需要将字典转换为列表,然后对列表进行排序。
例如,如果你有一个字典,并且想要按照键(key)进行排序:
my_dict = {'apple': 10, 'banana': 5, 'cherry': 20}
sorted_dict = sorted(my_dict.items(), key=lambda item: item[0]) # 按键排序
print(sorted_dict)
#打印结果:
#[('apple', 10), ('banana', 5), ('cherry', 20)]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
如果你想要按照值(value)进行排序:
my_dict = {'apple': 10, 'banana': 5, 'cherry': 20}
sorted_dict = sorted(my_dict.items(), key=lambda item: item[1]) # 按值排序
print(sorted_dict)
#打印结果:
#[('banana', 5), ('apple', 10), ('cherry', 20)]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
在Java中,我们Stream时,会使用到sorted() 方法 进行排序处理
/**
* Returns a stream consisting of the elements of this stream, sorted
* according to the provided {@code Comparator}.
*
* For ordered streams, the sort is stable. For unordered streams, no
* stability guarantees are made.
*
*
This is a stateful
* intermediate operation.
*
* @param comparator a non-interfering,
* stateless
* {@code Comparator} to be used to compare stream elements
* @return the new stream
*/
Stream<T> sorted(Comparator<? super T> comparator);
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: