高效的Python单行代码,你都知道多少?

B站|公众号:啥都会一点的研究生

相关阅读

这七个100%提高Python代码性能的技巧,一定要知道
整理了几个100%会踩的Python细节坑,提前防止脑血栓
整理了十个100%提高效率的Python编程技巧,更上一层楼
Python-列表,从基础到进阶用法大总结,进来查漏补缺
Python-元组,从基础到进阶用法大总结及与列表核心区别,进来查漏补缺
Python-字典,从基础到进阶用法大总结,进来查漏补缺
Python-集合,从基础到进阶大总结,进来查漏补缺
这些包括我在内都有的Python编程陋习,趁早改掉
Python可变类型的坑,不要再踩了
列表推导式,Python中最好的特性?可读性?
元组啊,不就是不可变的列表吗?
订阅专栏 ===> Python

在阅读代码的时候经常可以看到很多单行的操作,肥肠简洁,本期就来盘点一些常用用法

值得一提的是,不要过分追求简洁而丢了可读性,不然同事容易**

1. for循环

使用列表推导式将 for 循环写在一行中

例如,要过滤掉小于 250 的值

mylist = [200, 300, 400, 500]
# 常规方法
result = [] 
for x in mylist: 
    if x > 250: 
        result.append(x) 
print(result) # [300, 400, 500]

# 单行方法
result = [x for x in mylist if x > 250] 
print(result) # [300, 400, 500]

2. while循环

该例将展示两种实现单行 While 循环的方法

#Method 1 Single Statement   
while True: print(1) #infinite 1  
#Method 2 Multiple Statements  
x = 0   
while x < 5: print(x); x= x + 1 # 0 1 2 3 4 5

3. if else语句

要在一行中编写 if-else 语句,可以使用三元运算符

下面展示3个示例,让大家清楚了解如何将三元运算符用于单行 if-else 语句

#if Else In a single line.  
#Example 1 if else  
print("Yes") if 8 > 9 else print("No") # No  
#Example 2 if elif else   
E = 2   
print("High") if E == 5 else print("数据STUDIO") if E == 2 else   
print("Low") # Data STUDIO   
   
#Example 3 only if  
if 3 > 2: print("Exactly") # Exactly

4. 合并字典

这里介绍两种合并字典的方法

# Merging dictionaries in one line  
d1 = {
    
     'A': 1, 'B': 2 }   
d2 = {
    
     'C': 3, 'D': 4 }  
#Method1   
d1.update(d2)   
print(d1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}  
#Method2   
d3 = {
    
    **d1, **d2}   
print(d3) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}

5. 单行函数

有两种方法可以在一行中实现定义一个函数

在第一种方法中,使用与三元运算符或单行循环方法相同的函数定义

第二种方法是使用 lambda 来定义函数

#Function in one line  
#Method1
def fun(x): return True if x % 2 == 0 else False   
print(fun(2)) # False  
#Method2
fun = lambda x : x % 2 == 0   
print(fun(2)) # True   
print(fun(3)) # False

6. 递归

该例展示如何在一行中使用递归,使用单行函数定义和单行 if-else

查找斐波那契数列

# Single-line recursion 
#Fibonaci Single-line recursion example  
def Fib(x): return 1 if x in {
    
    0, 1} else Fib(x-1) + Fib(x-2)  
print(Fib(5)) # 8  
print(Fib(15)) # 987

7. 异常处理

使用异常处理来处理 Python 运行时的错误,常规的可以编写try except语句

使用 exec() 语句也可以做到这一点

# Exception handling in one line  
#Original method  
try:  
    print(x)  
except:  
    print("Error")  
#Single line way  
exec('try:print(x) \nexcept:print("Error")') # Error

8. 将列表转换为字典

使用enumerate() 函数在一行中将列表转换为字典

将列表传递给 enumerate() 并使用 dict() 最终输出转换为字典格式

# Dictionary in one line  
mydict = ["John", "Peter", "Mathew", "Tom"]  
mydict = dict(enumerate(mydict))  
print(mydict) # {0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}

9. 多变量赋值

Python 允许在一行中进行多个变量的赋值,也就是解包

#Multiple variable assignments in one line.  
#Single-line method  
x = 5   
y = 7   
z = 10   
print(x , y, z) # 5 7 10  
#Single line way  
a, b, c = 5, 7, 10   
print(a, b, c) # 5 7 10

10. 在一行中交换值

在很多编程语言中总是需要第三个变量名 temp 来保存交换后的值

而在Python中可以轻松的做到

#Swap values in one line  
#Single-line method 
v1 = 100  
v2 = 200  
temp = v1  
v1 = v2   
v2 = temp  
print(v1, v2) # 200 100  
# One-line value swapping 
v1, v2 = v2, v1   
print(v1, v2) # 200 100

11. 排序

排序是编程中的常见问题,Python 有很多内置方法来解决

# Sort in one line  
mylist = [32, 22, 11, 4, 6, 8, 12]   
# Method1
mylist.sort()   
print(mylist) # # [4, 6, 8, 11, 12, 22, 32]  
print(sorted(mylist)) # [4, 6, 8, 11, 12, 22, 32]

12. 类

lambda与namedtuple

# One-line class  
#Regular way  
class Emp:   
    def __init__(self, name, age):   
        self.name = name   
        self.age = age  
        emp1 = Emp("a44", 22)   
print(emp1.name, emp1.age) # 
#Single line way  
#Method 1 Lambda with Dynamic Attributes 
  
Emp = lambda:None; Emp.name = "a44"; Emp.age = 22  
print(Emp.name, Emp.age) # 
  
#Method 2 
from collections import namedtuple  
Emp = namedtuple('Emp', ["name", "age"]) ("a44", 22)   
print(Emp.name, Emp.age)

13. 分号

# One-line semicolon 
# exsample 1   
a = "Python"; b = "Programming"; c = "languages"; print(a, b, c)  
# print
# Python Programming languages

14. map

#One line map function 
print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10])))  
# print
# [7, 8, 9, 10, 11, 12]

15. 删除列表多个内容

使用 del 方法从列表中删除多个元素

# Deleting the Mul elements from the first row of the list
mylist = [100, 200, 300, 400, 500]  
del mylist[1::2]  
print(mylist) # [100, 300, 500]

猜你喜欢

转载自blog.csdn.net/zzh516451964zzh/article/details/129338949
今日推荐