zoukankan      html  css  js  c++  java
  • (八)lambda、列表生成式、字典转list排序

    1、函数返回多个值:

      1)函数如果return多个值的话,会把返回的这几个值放在一个元组里面

    def say():
        num1 = 1
        num2 = 2
        num3 = 3
        return num1,num2,num3
    res = say()
    print(res)
    
    >>> (1, 2, 3)

      2)函数如果return多个值的话,可以用多个变量来分别接收

    def say():
        num1 = 1
        num2 = 2
        num3 = 3
        return num1,num2,num3
    res1,res2,res3 = say()
    print(res1)   #>>>1
    print(res2)   #>>>2
    print(res3)   #>>>3

    2、lambda:匿名函数,函数功能很简单,只用一次,不需要定义

    res = lambda x:x+1  #冒号前面的是返回值,冒号后面是函数体,也是函数的处理逻辑
    print(res(1))
    
    >>> 2

    3、列表生成式(列表)

    l = [i for i in range(1,101,2)]
    
    l = [i for i in range(1,101) if i%2==1]  #或者这样写
    print(l)
    
    >>>[1, 3, 5, 7, 9...]

    如果列表生成式外面是()的形式:l就不是list了,而是一个生成器

    l = (i for i in range(1,101) if i%2==1)
    print(l)  #l是一个生成器
    
    #print(l.__next__())   #生成器调用一次取一个值
    
    for i in l:   
        print(i)
    
    >>> <generator object <genexpr> at 0x00BFD8C8>
    >>>1 3 5 7 9...

    #生成器每次循环时会按照规则只计算出一个元素,放在内存中,比list省内存

    #list是把所有的元素都放在内存里面

    4、三元表达式

    a = 5
    b = 4
    c = a if a>b else b   #三元表达式
    print(c)
    
    不用三元表达式就是如下:
    
    a = 5
    b = 4
    if a>b:
        c = a
    else:
        c = b
    print(c)

    5、字典是无序的,直接对字典排序是不存在的。先要把字典转成list再排序

    #sorted():每次自动循环取二维数组里面的元素

    d = {'a':5,'b':2,'c':3}
    print(d.items())    #得到一个二维数组
    res = sorted(d.items(),key=lambda x:x[0]) #key=字典的key值,进行排序
    
    res = sorted(d.items(),key=lambda x:x[1])  #根据字典的value进行排序
    print(res)
    
    >>> dict_items([('b', 2), ('a', 5), ('c', 3)])
    >>> [('a', 5), ('b', 2), ('c', 3)]

    循环时取多个:

    l = [ [1,2,3],[3,4,5],[5,6,7] ]
    for a,b,c in l:  #a,b,c是3个,上面的小list每个也要包含3个元素?
        print(a,b,c)

    6、定义函数时,告诉别人应该传什么类型的参数

    def is_float(s:str):
        pass

     

  • 相关阅读:
    解决DataGridView中回车换行的问题
    几条经典的SQL语句
    SQL中把一个表中的数据导出到一个新表中
    [转载]TCP的网络编程中一些典型的问题,以及一些分析和解决方案
    Delphi调用C#web服务参数无法接收的问题
    IIS服务器不支持中文文件名的解决方法
    SQL SERVER2005导入导出工具
    为远程IP服务器取个本地认识的主机名
    Win Form中如何把ENter回车键转换成Tab键
    CheckedListBox 用法
  • 原文地址:https://www.cnblogs.com/chenhongl/p/8989399.html
Copyright © 2011-2022 走看看