python中sort函数和sorted函数的区别以及python错误:AttributeError: 'list' object has no attribute 'sorted'原因

python:AttributeError: 'list' object has no attribute 'sorted'原因:

 

没有注意sort()和sorted()的区别

sort()是方法,sorted()是函数,
二者的使用形式不同.

方法是调用,是用.sort()的方式,比如可用 list2.sort()


函数进行数据传递,使用方式不是用.  比如可用sorted(list2)


描述

.sort()与sorted()都可对对象进行排序操作,都是python内置的.

语法:

一.     sorted()

sorted(iterable*key=Nonereverse=False)

sorted()函数有返回值,一个排序后新列表

Has two optional arguments which must be specified as keyword arguments.

key 

指定关键字,指定由函数从原对象中抽取出的条件,根据其返回的参数作为关键字,对原对象中的元素进行排序

例如: key=str.lower

默认值为None,直接对元素进行排序,如对字典,以键名为关键字.

reverse

 指定值为布尔型. 只有两个(True或False,注意大写)

如果为True, 则为反向排序,即降序.

 例子:

x=sorted(cars)

print(x) cars列表里的内容没有改变

cars.sort()   原列表直接进行方法调用,所以原列表进行了排序,不可逆

sort是对于列表类型的排序函数,函数原型为:L.sort(key=None, reverse=False),该方法没有返回值,是对列表的就地排序

key-- 是指用来比较的关键字,可以说是列表元素的一个权值。key一般用来接受一个函数(或者匿名函数),这个函数只接受一个元素,并返回其权值

reverse-- 是否逆序排列
```
a = ['Google', 'Runoob', 'Taobao', 'Facebook']
 
a.sort() # 默认根据第一个字母排序
print(a)
 
a.sort(key= lambda x : x[1]) # 根据第二个字母排序
print(a)
 
def takeSecond(x):
    return x[1]
a.sort(key=takeSecond)
print(a)

 
sorted 可以对所有可迭代的对象进行排序操作,尤其是可以对字典进行排序,其形式为:sorted(iterable, key=None, reverse=False)。

sorted函数是有返回值的。

d = {'lily':25, 'wangjun':22, 'John':25, 'Mary':19}
sorted_keys = sorted(d) # 对字典而言,默认是对keys进行排序
print(sorted_keys)
sorted_keys1 = sorted(d, key=lambda x : x[1])
print(d_new2)
 
d_new = sorted(d.items(), key=lambda x: x[1], reverse=True) # 根据年龄排序,返回列表形式
print(d_new)
d_new = dict(d_new) # 使用内置函数把嵌套列表转换成字典
print(d_new)
 
sorted_values = sorted(d.values(), key=lambda x:x, reverse=False) # 排序值
print(sorted_values)
 
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值