python 列表推导式
''' 列表转字符串,L = [1, 2, 3, 5, 6],如何得出 ‘12356’? 列表推导式 语法: 变量名 = [结果 for 变量 in 列表 for 变量 in xxx] 变量名 = [结果 for 变量 in 列表 if 条件] ''' # 使⽤推导式,将数组中的数字转成 L =[1,2,3,5,6] lists =[str(i) for i in L] #print(lists) #print(''.join(lists)) #快速创建一个包含元素1-10的列表 list1 = [i for i in range(1, 11)] #print(list1) ['1', '2', '3', '5', '6'] # 快速创建一个包含1-10之间所有偶数的列表 list2 = [i for i in range(1,11) if i%2==0] # print(list2) # [2, 4, 6, 8, 10] # 现在有一列表 lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ,求出 1/4/7 和 1/5/9元素,思考如何取出 lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for i in range(len(lst)): # print(i) # 0 1 2 ''' lst[0] [1, 2, 3] lst[1] [4, 5, 6] lst[2] [7, 8, 9] 1 4 7 分别是取 lst[0] lst[1] lst[2] 第一个值 ''' lst1 = lst[i][0] # print(lst1) lst1 = [lst[i][0] for i in range(len(lst))] # print(lst1) [1, 4, 7] lst2 = [lst[i][i] for i in range(len(lst))] # print(lst2) # [1, 5, 9] a = [lambda x: x * i for i in range(3)] # 此处定义了一个装了 3 个匿名函数函数的列表,尚未调用匿名函数, # 调用时全局变量 i 变为 2 相当于 a = [lambda x:x*2, lambda x:x*2, lambda x:x*2] print(type(a[0]), "---", a[0]) # -> x为函数形参,i为全局变量,程序执行到此处i变为2 print(a[0](2)) print(a[1](2)) print(a[2](2))
世界上最美的风景,是自己努力的模样