python合并表达

 

一、三元表达式(有函数名)

1,仅适用于当条件成立返回一个值,不成立返回另一个值的场景

res=返回值1 if 条件 else 返回值2

eg: x=88 y=80, 

res=x if x>y else y

print(res)

二、函数的递归

递归函数嵌套的一种特殊方式,比如在函数的内部直接或间接的调用自己,导致函数陷入了死循环,用递归的时候一定需要注意的是需要添加终止条件。

三、匿名函数(无函数名)

f= lambda 参数:返回值

例: f=lambda x,n:x**n 

        print(f(2,3))  (注意与三元表达式对比记忆。)

匿名函数一般不单独使用而是与其他内置函数配合使用。比如作为其他函数的一个内置条件

salaries={
        "James":5000,
        "KD":3500,
        "Curry":4000,
        "Harden":4100

    }
print(max(salaries))#这个是根据字典的key排序的,我们想达到的目标是取工资最高的
print(max(salaries,key=lambda x:salaries[x])
print(sorted(salaries,key=lambda x:salaries[x])#同理排序有

常见搭配的函数有map.sorted,min,max,filter,reduce


#map,reduce,filter用法格式都是 reduce(条件函数,输入参数,初始值)

nums=[1,2,3,4,5]
res = map(lambda x:x**2,nums)
print(res)
print(list(res))#需要转化称list才能看结果
from functools import reduce
res1=reduce(lambda x,y:x+y,range(0,101),0)#完成1+2+3++++100的计算,reduce用于叠加计算
print(res1)                               #reduce(条件,对象,初始值)
list1=["today", "is", "the", "first", "day"]
res=reduce(lambda x,y:x+" "+y+" ",list1)
print(res) #today is the first day
res = filter(lambda n:n>3,nums) #filter过滤用的
print(list(res))
res2=filter(lambda x:x.endswith("s"),list1)#以...开头 .startswith()
print(list(res2))

 

四、format与%

format三种基本用法:

"{} {} {}.format("Albert",23,"Man")"="%s%s%s"%(name,age,gender)

res="{1}{0}{1}".format("Albert",18,"Man")#18Albert18 101表索引

"{name} {age} {gender}.format(name="Albert",age=23,gender="Man")#关键值对应

不同点:

#格式灵活
c=(250,250)
       #s1="敌人的坐标:%s" %c 报错,因为实际上c并不是字符串
       s1="敌人的坐标:{}".format(c)#很灵活自动根据输入设定格式。
       print(s1)
#调整占位符
print("{:3>10}".format("18"))
print("{:*^10}".format("18"))

#定义数据精度
print("{:.05f}".format(3.141592653))#小数点五位
#数据分节
print("{:,}".format(3141592653)) #三位自动分节
#数据进制转换
print("{:b}".format(8))#bdox二 十 八 十六 进制

  zip拉链函数

left="hello"
right2={"x":1 ,"y":2 ,"z":3 }
right1=[1,2,3,4,5]
print(list(b) #[('h', 1), ('e', 2), ('l', 3), ('l', 4), ('o', 5)]

五、列表生成式

l1=["egg%s" %i for i in range(1,100) if i>5]

六、生成器表达式

将列表生成式的中括号改成小括号就是一个生成器表达式了

l1=("egg%s" %i for i in range(1,100) if i>5)

总结:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值