我是靠谱客的博主 香蕉钻石,最近开发中收集的这篇文章主要介绍Python一行代码奇技淫巧狂热者(Tricky or Fucky) | 海象运算符、lambda、for in if、三元操作等前言关键技巧其他技巧,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 前言
  • 关键技巧
    • for in if 语句
    • lambda 匿名函数
    • 三元操作符 a if exp else b
    • 海象运算符骚操作
  • 其他技巧
    • 长赋值语句、原地交换、链比较
    • f-Strings 格式化字符串

前言

在这里插入图片描述
在学习python这门编程语言的过程中,

经常发现很多很有趣的一行代码解决各种问题,

使得代码结构紧凑,可读性不强但zhuangbility性极强。

为了完成一行代码统治大业,必须习得以下技巧:

关键技巧

for in if 语句

一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的(省略就是普通的遍历语句)。

l = [0,1,2,3]
print(list(x for x in l if x%2))
# 输出奇数[1, 3]

需要注意的是返回的是一个generator迭代器,

一般要转为list 如:[ for in if ]

或者某些函数支持 如:sum、max可直接使用

lambda 匿名函数

python允许用lambda关键字创造匿名函数。匿名是不需要以标准的方式来声明,比如说使用 def 语句。(除非赋值给一个局部变量,这样的对象也不会在任何的名字空间内创建名字,上面的例子中会创建名字。)

def add(a,b):
	return a+b

等价于:

add = lambda a,b : a+b

lambda多个返回值:

f = lambda a,b:(a+b,a-b)
print(f(1,2))
#输出结果:(3,-1)

三元操作符 a if exp else b

等价于C、C++、Java中的三目运算符

min = lambda a,b:a if a<b else b 
min = a<b ? a : b

海象运算符骚操作

有以下一段代码

if 1!=2:
	t = True
else:
	i+=1
	t = False
	

无敌简化一行:

t = True if 1!=2 else (i!=(i:=i+1) and False

因为 i!=(i:=i+1) 恒为True
else 后面巧妙的多执行了一句i+=1操作

其他技巧

长赋值语句、原地交换、链比较

得益于python高效开发的特性

a,b,c = 1,2,3
a,b = b,a        #交换两数
a<b<c        #等价于 a<b and b<c

f-Strings 格式化字符串

f-string在形式上是以 f 或 F 修饰符引领的字符串(f’xxx’ 或 F’xxx’),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式。

print(f"1+1应该是等于{1+1}")

花括号{}中间可以是任意任意表达式、变量等

最后

以上就是香蕉钻石为你收集整理的Python一行代码奇技淫巧狂热者(Tricky or Fucky) | 海象运算符、lambda、for in if、三元操作等前言关键技巧其他技巧的全部内容,希望文章能够帮你解决Python一行代码奇技淫巧狂热者(Tricky or Fucky) | 海象运算符、lambda、for in if、三元操作等前言关键技巧其他技巧所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(24)

评论列表共有 0 条评论

立即
投稿
返回
顶部