sort与sorted方法主要区别: 方法 应用对象 是否修改原对象 返回值 sort() 列表 是 None sorted() 所有可迭代对象 否 返回新列表 sort(self, key, reverse): reverse默认为False,升序 降序则,reverse=Tr
sort与sorted方法主要区别:
方法
应用对象
是否修改原对象
返回值
sort()
列表
是
None
sorted()
所有可迭代对象
否
返回新列表
sort(self, key, reverse):
reverse默认为False,升序
降序则,reverse=True
l = [9, 4, 2 ,5, 1, 2, 10]re = l.sort(reverse= True)
print(l)
print(re)
#结果
[10, 9, 5, 4, 2, 2, 1]
None
# 集合使用sort()
print(set(l).sort())
# 报错
AttributeError: 'set' object has no attribute 'sort'
sorted(__iterable, key, reverse)
__iterable:可迭代对象,必须
key:排序字段,传入函数,可选
reverse:升序/降序,默认升序
l = [9, 4, 2 ,5, 1, 2, 10]
s = set(l)
print(s, '类型:',type(s))
new_l = sorted(l)
new_s = sorted(s)
print('返回新列表:', new_l)
print('返回新列表:', new_s)
print('集合经过sorted()后,返回的是列表', type(new_s))
print('原列表不变:', l)
print('原集合不变:', s)
# 执行结果
{1, 2, 4, 5, 9, 10} 类型: <class 'set'>
返回新列表: [1, 2, 2, 4, 5, 9, 10]
返回新列表: [1, 2, 4, 5, 9, 10]
集合经过sorted()后,返回的是列表 <class 'list'>
原列表不变: [9, 4, 2, 5, 1, 2, 10]
原集合不变: {1, 2, 4, 5, 9, 10}
指定key排序
d = dict(z=3, a=9, f=6, e=1)# 以value字段排序,返回key列表
new_d1 = sorted(d.keys(), key= lambda x:d[x])
print(new_d1)
# 以key排序,降序,返回key_value列表
new_d2 = sorted(d.items(), key= lambda x:x[0], reverse= True)
print(new_d2)
# 执行结果
['e', 'z', 'f', 'a']
[('z', 3), ('f', 6), ('e', 1), ('a', 9)]