所谓双鱼

导航

 

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也是可以的

 

 
posted on 2018-05-02 21:42  所谓双鱼  阅读(149)  评论(0编辑  收藏  举报