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/71/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))

 

posted @ 2022-04-29 16:45  大熊童鞋  阅读(61)  评论(0编辑  收藏  举报