Python sorted() 函数
本帖最后由 一个账号 于 2020-3-19 20:51 编辑Python sorted() 函数
语法
sorted(iterable, /, *, key=None, reverse=False)
参数
参数描述
iterable可迭代对象
key一个函数,将可迭代对象中的每一个元素调用这个函数,用函数的返回值来比较
reverse排序规则,True 降序 , False 升序(默认)
描述
sorted() 函数对所有可迭代的对象进行排序操作。
返回值
返回重新排序的列表。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort() 方法是在原列表上操作,而内 sorted() 函数返回的是一个新列表。
通常使用 sort() 的效率比 sorted() 高:
import time
start = time.perf_counter()
.sort()
print("sort():", time.perf_counter() - start)
start = time.perf_counter()
sorted()
print("sorted():", time.perf_counter() - start)
执行结果:
sort(): 2.699999999966618e-06
sorted(): 4.700000000024129e-06
例子
>>> sorted()
>>> sorted(, reverse=True)
>>> sorted("532,4&%!dkjw", reverse=True)
['w', 'k', 'j', 'd', '5', '4', '3', '2', ',', '&', '%', '!']
>>> sorted("532,4&%!dkjw", reverse=False)
['!', '%', '&', ',', '2', '3', '4', '5', 'd', 'j', 'k', 'w']
>>> sorted("123456", key=lambda x: 2 if int(x) % 2 == 0 else 1)# 将奇数放到前面,因为是从小到大排列
['1', '3', '5', '2', '4', '6']
>>> sorted(["abcd", "ab", "abcdefg", "abcd"], key=len)
['ab', 'abcd', 'abcd', 'abcdefg'] 相比于time.perf_counter,我更喜欢time.process_time{:10_248:} 一个账号 发表于 2020-3-19 20:50
为什么?
process_time只记录CPU实际运行时间(其实和perf_counter没啥区别)>>> from time import perf_counter as perf,process_time as proc,sleep
>>> def tperf():
t=perf()
sleep(5)
return perf()-t
>>> def tproc():
t=proc()
sleep(5)
return proc()-t
>>> tperf()
4.999445299999991
>>> tproc()
0.0 永恒的蓝色梦想 发表于 2020-3-19 21:37
process_time只记录CPU实际运行时间(其实和perf_counter没啥区别)
建议不要使用逗号和在一起导入 一个账号 发表于 2020-3-19 21:52
建议不要使用逗号和在一起导入
其实我也知道
但懒是挡不住的{:10_248:}
页:
[1]