序列中元素判断_深拷贝_列表解析式_三元表达式_匿名函数
1.列表元素判断
#!/usr/bin/env python # encoding: utf-8 aa=['苹果 iphone8 手机 苹果 8 iphone8 95新 指纹灵敏 3D touch等所有功能全部正常','无ID无进水 无修屏有质量保证 不议价,拍下付款,当天发货验机','chen','xiaoxiao苹果'] print (aa) #判断元素是否在列表中 if 'chen' in aa: print('chen在序列aa中') else: print('不存在') #判断序列中_某元素内 是否包含某字符 if '苹果' in aa[0]: print('苹果_在aa[0]中存在') else: print('不存在') #判断整个list中是否包含'某字符串(并打印包含的元素)' baohan=[] for i in range(len(aa)): #print(aa[i]) if '苹果' in aa[i]: baohan.append(aa[i]) #print('苹果_在aa['+str(i)+']中存在') else: print('不存在') print('aa序列中包含-苹果的元素有',baohan) #判断序列是否为空 bb=[] if bb: print('bb为空序列') else: print('bb不为空') #判断序列内元素是否有重复 a=[1,2,3,3,"chen"] jieguo=([True,False][a==list(set(a))]) print(jieguo) #打印去重后的list print(list(set(a)))
2.列表浅拷贝和深拷贝
#!/usr/bin/env python # encoding: utf-8 import copy ''' 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 PS:深拷贝后是两个内存空间,浅拷贝是一个内存空间 ''' a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深拷贝 #追加5到原始对象 a.append(5) #修改对象a(追加) a[4].append('c') #修改对象a中的['a', 'b']数组对象 print( '原始对象a = ', a ) print( '赋值对象b = ', b ) print( '浅拷贝c = ', c ) print( '深拷贝d = ', d )
3.列表解析式
#!/usr/bin/env python # encoding: utf-8 #生成0到10的列表 a=[i for i in range(10)] chen=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print([i for i in chen if i > 5 and i < 9])#在chen列表中生成大于5和小于9的列表 #生成小于20的偶数列表 bb=[i for i in range(1,21) if i%2 ==0 ] #列表生成小于20的偶数 #生成大于列表20个元素切大于10,否则就为55555 cc=[i if i>10 else '55555' for i in range(1,21)] print(cc) #_______________________________________________循环和判断使用__________________________________________ #单层for和单层if ddd=[2,3,4,5,6] b_list = [x * x for x in ddd if x % 2 == 0] print('单层for和单层if',b_list) #单层for和多层if a=['零' if i==0 else '三' if i==3 else '五' if i==5 else i for i in range(10) ] print('单层for和多层if',a) ### ---------------------等价于------------------- # for i in range(10): # if i==0: # print('零') # else: # if i==3: # print('三') # else: # if i==5: # print('五') # else: # print(i) #多层for循环 d_list = [(x, y) for x in range(5) for y in range(4)] #d_list = [x for x in range(5) for y in range(4)] print('多层for',d_list) # ---------------等价于--------------- dd_list = [] for x in range(5): for y in range(4): dd_list.append((x, y)) #多层for循环单层if、else aa=['117','127','ccc'] chen=['kkk117llld.apk','ddjdijd127p.apk','iddd127ss.apk','ydjdje126.apk'] d_list = [y for x in aa for y in chen if x in y ] print('多层for和单层if',d_list) dd = [y if x in y else '条件不存在' for x in aa for y in chen] print('多层for和单层if else',dd) #多层for循环多层层if、else aa=['117','127','ccc'] chen=['kkk117llld.apk','ddjdijd127p.apk','iddd127ss.apk','ydjdje126.apk'] ee = [y if x=='117' else 'x不等于117' if y == 'ydjdje126.apk' else 'y不等于ydjdje126.apk' for x in aa for y in chen] print('多层for和多层if else',ee)
4.三元表达式
#!/usr/bin/env python # encoding: utf-8 #三元表达式: y = 5 print('y是一个负数' if y < 0 else 'y是一个非负数') # 三元表达式赋值 y=10 x = -1 if y < 5 else y**2 print(x) #三元表达式: y=6 x = -1,2,['chen','wei'] if y < 8 and y>3 else y**2 print(x) #三元表达式: y=6 x = -1,2,['chen','wei'] if y < 8 and y>3 else y*10 and 1000 print(x)
5.匿名函数
#!/usr/bin/env python # encoding: utf-8 ''' lambda:为匿名函数 a, b, c: a + b + c分号左边表示接受的参数,分号右边是表达式 ''' ######################匿名函数与普通函数的对比##################### def sum_func(a, b, c): return a + b + c #匿名函数( a, b, c表示接受的参数) sum_lambda = lambda a, b, c: a + b + c print(sum_func(1, 100, 10000)) print(sum_lambda(1, 100, 10000)) ####################匿名函数###################################### # 无参数 lambda_a = lambda: 100 print(lambda_a()) # 一个参数 lambda_b = lambda num: num * 10 print(lambda_b(5)) # 多个参数 lambda_c = lambda a, b, c, d: a + b + c + d print(lambda_c(1, 2, 3, 4)) # 表达式分支 lambda_d = lambda x: x if x % 2 == 0 else x + 1 print(lambda_d(6)) print(lambda_d(7)) #####################lambda作为一个参数传递####################### def sub_func(a, b, func): print('a =', a) print('b =', b) print('a - b =', func(a, b)) sub_func(100, 1, lambda a, b: a - b) ##############lambda函数与Python内置函数配合使用################## number_a = ['a','b','c','d','e','f'] number_list = [100, 77, 69, 31, 44, 56] num_sum = list(map(lambda x,y: {str(x): y}, number_a,number_list)) print(num_sum) ######################lambda作为函数返回值######################## def run_func(a, b): return lambda c: a + b + c return_func = run_func(1, 10000)#调用普通函数 print(return_func)#返回函数对象 print(return_func(100))#返回函数值 ############################################################lambda的高级函数########################################################## ###____________________________________map函数的使用_____________________________________ ''' map() 会根据提供的函数对指定序列做映射, Map 会将一个函数映射到一个输入列表的元素上 ''' def square(x) : '''计算平方数''' return x ** 2 print(list(map(square, [1,2,3,4,5]))) # 计算列表各个元素的平方 ###使用lambda和map items = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, items)) print(squared) ###___________________________________Filter函数的使用___________________________________ ''' filter 过滤列表中的元素,并且返回一个符合要求的元素所构成的列表,符合要求即函数映射到该元素时返回值为True ''' def square(x) : '''过滤函数''' return x < 3 number_list=[-5, -4, -3, -2, -1,1,2,3,4,5,6,7,8,9,10] print(list(filter(square, number_list))) ###使用lambda和filter number_list=[-5, -4, -3, -2, -1,1,2,3,4,5,6,7,8,9,10] #接受一个参数x, 表达式为x<0 less_than_zero = filter(lambda x: x < 3, number_list) print(list(less_than_zero)) ###___________________________reduce的使用________________________________________________ ''' 当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数 ''' from functools import reduce #接受2个参数x,y, 表达式为x+y product = reduce( (lambda x, y: x + y), [1, 2, 3, 4, 5]) print(product)
相关连接:
https://blog.csdn.net/PSpiritV/article/details/124323742 ............................................................列表推导式中的多层for嵌套、多层if else嵌套
浙公网安备 33010602011771号