• sorted()函数排序的灵活运用---面试


    知识点:

    题目一:列表嵌套字典的排序,分别根据年龄和姓名排序

    foo = [{"name":"zs","age":19},{"name":"ll","age":54},
    {"name":"wa","age":17},{"name":"df","age":23}]

     1 foo = [{"name": "zs", "age": 19}, {"name": "ll", "age": 54},
     2 
     3         {"name": "wa", "age": 17}, {"name": "df", "age": 23}]
     4 
     5 
     6 a = sorted(foo, key=lambda x: x['age'], reverse=True)
     7 print('按照年龄倒序排列:', a)
     8 
     9 a = sorted(foo, key=lambda x: x['name'])
    10 print('按照姓名排序:', a)

    运行结果如下:

    题目二:列表嵌套元组,分别按字母和数字排序
    foo = [("ab", 20), ("ur", 30), ("wa", 19), ('zf', 23)]
    1 foo = [("ab", 20), ("ur", 30), ("wa", 19), ('zf', 23)]
    2 a = sorted(foo, key=lambda x: x[0], reverse=True)  # reverse=True是降序,reverse=False是升序(默认)
    3 print('按照字母排序的结果是:', a)
    4 a = sorted(foo, key=lambda x: x[1])
    5 print('按照数字排序的结果是:', a

    运行结果如下:

    题目三:列表嵌套列表排序,年龄数字相同怎么办?
    foo = [("ab", 20), ("ur", 30), ("wa", 19), ('zf', 23), ('ha', 23), ('nb', 23)]

    1 foo = [("ab", 20), ("ur", 30), ("wa", 19), ('zf', 23), ('ha', 23), ('nb', 23)]
    2 a = sorted(foo, key=lambda x: (x[1], x[0]))  # 年龄相同怎么办?lambda表达式的key值添加参数,按字母排序
    3 print('按年龄排序,年龄相同的按照姓名排序:', a)

    运行结果是:

     题目四:根据字符串长度排序

    s = ['ab', 'uuu', 'w', 'iudsc', 'sdgfkjsgfasu', 'qq', 'uytg']

    1 s = ['ab', 'uuu', 'w', 'iudsc', 'sdgfkjsgfasu', 'qq', 'uytg']
    2 # 使用sorted方法.sorted函数有返回值,不改变s本身的值
    3 s_new = sorted(s, key=lambda x: len(x))
    4 print(s_new, s)
    5 
    6 # 使用sort方法。sort函数没有返回值,是修改s本身。
    7 s.sort(key=len)
    8 print(s)

    运行结果是:

     
  • 相关阅读:
    Linux系统安装Apache 2.4.6
    Redhat Server 5.7 安装配置PHP
    ORACLE基本数据类型总结
    Nagios学习实践系列——产品介绍篇
    Linux技术修复
    python的特殊方法:
    python获取对象信息
    python多重继承:
    python多态
    python类的继承
  • 原文地址:https://www.cnblogs.com/annatest/p/13625321.html
Copyright © 2020-2023  润新知