lambda列表生成式字典转list排序
Posted chenhongl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于lambda列表生成式字典转list排序的主要内容,如果未能解决你的问题,请参考以下文章