1 推导式应用
1.1 列表推导式(一行for循环)
#For循环在一行 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 三元运算符应用
# 语法 [on true] if [expression] else [on false]
2.1 一行 if-else 语句
#if Else 在一行中 #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") # 数据STUDIO #Example 3 only if if 3 > 2: print("Exactly") # Exactly
3 匿名函数应用
# 语法 result = lambda[arg1[,arg2,...,argn]]:expression result:用于调用lambda表达式。 [arg1[,arg2,…,argn]]:可选参数,用于指定要传递的参数列表,多个参数使用逗号“,”分隔。 expression:必选参数,用于指定一个实现具体功能的表达式,如果有参数,那么在该表达式中将应用这些参数。
⚠️ 使用lambda表达式时,参数可以有多个,用逗号“,”分隔,但是表达式只能有一个,即只能返回一个值,而且也不能出现其他非表达式语句(如for或while)。
3.1 一行函数
#函数在一行中 #方法一 def fun(x): return True if x % 2 == 0 else False print(fun(2)) # False #方法2 fun = lambda x : x % 2 == 0 print(fun(2)) # True print(fun(3)) # False
3.2 一行递归
# 单行递归 #Fibonaci 单行递归示例 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
4 一行while循环
#方法 1 Single Statement while True: print(1) #infinite 1 #方法 2 多语句 x = 0 while x < 5: print(x); x= x + 1 # 0 1 2 3 4 5
5 一行合并字典
# 在一行中合并字典 d1 = { 'A': 1, 'B': 2 } d2 = { 'C': 3, 'D': 4 } #方法 1 d1.update(d2) print(d1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4} #方法 2 d3 = {**d1, **d2} print(d3) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
6 一行异常处理
# 一行异常处理 #原始方式 try: print(x) except: print("Error") #单行方式 exec('try:print(x) \nexcept:print("Error")') # 错误
7 一行列表转字典
# 字典在一行 mydict = ["John", "Peter", "Mathew", "Tom"] mydict = dict(enumerate(mydict)) print(mydict) # {0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}
8 一行多变量
#多行变量 #正常方式 x = 5 y = 7 z = 10 print(x , y, z) # 5 7 10 #单行方式 a, b, c = 5, 7, 10 print(a, b, c) # 5 7 10
9 一行交换值
#换成一行 #正常方式 v1 = 100 v2 = 200 temp = v1 v1 = v2 v2 = temp print(v1, v2) # 200 100 # 单行交换 v1, v2 = v2, v1 print(v1, v2) # 200 100
10 一行排序
# 在一行中排序 mylist = [32, 22, 11, 4, 6, 8, 12] # 方法 1 mylist.sort() print(mylist) # # [4, 6, 8, 11, 12, 22, 32] print(sorted(mylist)) # [4, 6, 8, 11, 12, 22, 32]
⚠️ sort和sorted区别
sort是在原位重新排列列表,而sorted()是产生一个新的列表。
sort 只是应用在 list 上的方法(就地排序无返回值)。sorted 是内建函数,可对所有可迭代的对象进行排序操作(返回新的list)。
11 一行读取文件
#一行读取文件 #正常方式 with open("data.txt", "r") as file: data = file.readline() print(data) # Hello world #单行方式 data = [line.strip() for line in open("data.txt","r")] print(data) # ['hello world', 'Hello Python']
12 一行分号
a = "Python"; b = "编程"; c = "语言"; print(a, b, c)
13 一行打印
# 一行打印 #正常方式 for x in range(1, 5): print(x) # 1 2 3 4 #单行方式 print(*range(1, 5)) # 1 2 3 4 print(*range(1, 6)) # 1 2 3 4 5
14 一行map函数
Map 函数是适用的高阶函数。这将函数应用于每个元素。下面是我们如何在一行代码中使用 map 函数的示例。
#在一行中map print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10]))) # 输出 # [7, 8, 9, 10, 11, 12]
⚠️ map和reduce的区别
reduce返回的是函数经过执行运算后的结果,reduce累计运算,适合做大数据的运算,前两个元素作用得到结果后,继续和下一个元素运算
from functools import reduce sum1 = reduce(lambda x, y: x + y, range(1, 5)) print(sum1) # 10
map返回的是个集合,函数依次作用到每一个元素,每个元素都会被函数单独作用一次。
sum2 = map(lambda y: y ** 2, range(1, 5)) print(type(sum2)) # <class 'map'> print(sum2) # <map object at 0x7f809ce4c1d0> for i in sum2: print(i) # 1,4,9,16
总结:
map和reduce函数均是接受两个参数,第一个参数,均是一个函数,可以是匿名函数,也可以是普通的函数,第二个参数是一个可迭代的序列(列表 或元组)
map函数的第一个参数是函数,函数的参数可以是1个或者多个,而reduce只能接受2个参数。
map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次 。
reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算)。
标签:map,函数,有用,python,reduce,一行,else,单行,print From: https://www.cnblogs.com/daminghuahua/p/16963488.html