zoukankan      html  css  js  c++  java
  • python学习(十七)函数,列表,字典补充知识

    1、函数返回多个值

    1)函数返回多个值,它会把这几个值放到一个元组里
    def say():
        num1=1
        num2=2
        num3=3
        return num1,num2,num3
    res=say()
    print(res) 

    输出结果为:

    (1, 2, 3)

    2)函数返回多个值,可以用多个变量接收,则每个变量与返回值对应

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

    输出结果为:

    1
    2
    3

    2、匿名函数

    这个函数功能很简单,只用一次
    res=lambda x:x+1  # 冒号后面的是函数体,冒号前面的是返回值
    print(res(1))

    3、列表生成式

    1)从1-36中随机取6个数,不够两位补零,可以用以下方式写:

    import random
    red_num=random.sample(range(1,34),6)
    new_num=[]
    for num in red_num:
        tmp = str(num).zfill(2)
        new_num.append(tmp)
    print(new_num)

    但该方式不够简洁,以下这种方式,一句代码相当于上面四行代码,更简洁

    import random
    red_num=random.sample(range(1,34),6)
    new_num=[str(num).zfill(2)for num in red_num]#列表生成式
    print(new_num)

    2)取100以内的奇数

    l=[i for i in range(1,101,2)]#列表生成式每隔两位取一次值
    print(l)

    输出结果是一个列表,包含所有100以内的奇数,list是把所有元素都放到内存里,以空间换时间

    下面这种方式,外面是小括号,不是一个list,是一个生成器,生成器比list节省内存,每次循环的时候根据规则计算一个元素,放到内存里

    l=(i for i in range(1,101,2))
    for i in range(50):
       print(l.__next__())

    4、三元表达式

    a,b中值大的一个赋给c

    a=5
    b=4
    if a>b:
       c=a
    else:
       c=b
    print(c)

    下面还有种更简便的方式:

    a=5
    b=4
    c= a if a>b else b
    print(c)

    5、字典排序

    字典本身是无序的,直接对字典排序是不行的,要转成其他类型。
    sorted方法循环 每一次传一个元组给lambda,然后lambad取元组第一个值,根据这个值进行排序
    d={'a':4,'c':2,'b':6}
    res=sorted(d.items(),key=lambda x:x[0]) #根据key排序
    print(res)
    for k ,v in res:
        print(k,v)

    6、二维数组循环每一行

    l=[[1,2,3,2],[1,4,3,3],[1,6,3,4],[1,8,3,5]]
    for a,b,c,d in l:
        print(a,b,c,d)  #二维数组循环每一行

    7、函数定义参数类型

    以下该种方式定义参数类型,并没有用

    def my(name:str):  #这种方式定义参数类型并没有什么用
        print(name)
    my(['测试','23'])  #传的不是str也是可以的
     
  • 相关阅读:
    python3 多线程的基本用法
    ASP.NET MVC下的四种验证编程方式
    漫步ASP.NET MVC的处理管线
    asp.net mvc源码分析-Action篇 IModelBinder
    在 Asp.NET MVC 中使用 SignalR 实现推送功能
    说说Python 中的文件操作 和 目录操作
    Python 用 os.walk 遍历目录
    我来说说MVC过滤器
    学习Python必须要知道的常用模块
    Python中的并发编程
  • 原文地址:https://www.cnblogs.com/emilyliu/p/8982665.html
Copyright © 2011-2022 走看看