本篇主题:
如何在特定条件下将一段Python代码缩为一行?
这篇文章中的技巧在与他人合作编写项目时慎用,因为其中某些代码修改技巧会大大降低代码可读性。
这些技巧适用于通常不会阅读或修改的代码片段或较短且功能紧凑的代码片段。
1.变量赋值合并
使用“,”隔开变量名并隔开变量的值。
例:
原代码:
a=1
b=2
并为一行后代码:
a,b=1,2
2.函数参数嵌套其他函数
即将多个函数的关于一个值的操作嵌套进一行代码。
例:
原代码:
a="10"
b=int(a)
c=b**2
d=str(c)
并为一行后代码:
d=str(int("10")**2)
3.使用“;”分隔符
几行不包含缩进的代码可以使用“;”分开而合并为一行。
例:
原代码:
os.system("whoami")
os.system("arp -a")
并为一行后代码:
os.system("whoami");os.system("arp -a")
4.“:”后不换行缩进
if、while等关键字后会使用“:”结尾,下一行代码与这一行代码间可以不换行。
例:
原代码:
if a>=0:
print(6/a)
并为一行后代码:
if a>=0:print(6/a)
5.列表推导式
对于将一个列表生成另一列表的简单操作可以使用列表推导式来表示。
具体了解可以见列表推导式 - ^sun^ - 博客园。
例:
原代码:
b=[]
for i in a:
b.append(i**2)
并为一行后代码:
b=[i**2 for i in a]
6.集合推导式
方法与列表推导式完全相同,但会生成一个集合(因此重复项会被合并)。
例:
原代码:
b=set()
for i in a:
b.add(i*3)
并为一行后代码:
b={3*i for i in a}
7.字典推导式
格式同列表推导式和集合推导式,生成一个字典。
例:
原代码:
a={}
for i in range(1,11):
a.update({i:i**2})
并为一行后代码:
a={x:x**2 for x in range(1, 11)}
8.条件推导式
以 expression1 if condition else expression2 格式编写if-else语句。
例:
原代码:
if a%3==1:
b=True
else:
b=False
并为一行后代码:
b=True if a%3==1 else False
9.用字典格式改写if-else语句
适用于简单且每一分支格式相同的if-else语句,将每一条件值与对应分支的数据放入字典以简化代码。
例:
原代码:
if a==1:
b="a"
elif a==2:
b="b"
elif a==3:
b="c"
并为一行后代码:
b={1:"a",2:"b",3:"c"}[a]
以上就是本篇文章中总结的将Python代码缩为一行的方法,以后如果发现新的方法可能还会更新这篇文章哦!
原创文章,转载请标明出处!