python3中的sort和sorted函数

1、在python3中,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)

输出:['Facebook', 'Google', 'Runoob', 'Taobao']
        ['Facebook', 'Taobao', 'Google', 'Runoob']
        ['Facebook', 'Taobao', 'Google', 'Runoob']             

  

2、python3中sorted函数取消了对cmp的支持,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)

输出:
    ['John', 'Mary', 'lily', 'wangjun']
    ['wangjun', 'Mary', 'lily', 'John']
    [('lily', 25), ('John', 25), ('wangjun', 22), ('Mary', 19)]
    {'lily': 25, 'John': 25, 'wangjun': 22, 'Mary': 19}
    [19, 22, 25, 25]

  

3、互换字典的键和值

  

d = {'lily':25, 'wangjun':22, 'John':25, 'Mary':19}
d_new = {v:key for key,v in d.items()}
print(d_new)

输出:{25: 'John', 22: 'wangjun', 19: 'Mary'}

  

  

  

  

猜你喜欢

转载自www.cnblogs.com/happyfool/p/10631367.html