Python入门(十一):列表解析式(列表推导式)

    科技2022-08-10  98

    点击跳转 《Python入门系列目录》


    高效创建新列表的方式,动态创建列表

    Python迭代机制的一种应用

    data = [num for num in range(20) if num % 2 == 1] # 等价于 data = [] for num in range(20): if num % 2 == 1: data.append(num) ls = [(i, j) for i in range(0, 3) for j in range(0, 3)] # 等价于 ls = [] for i in range(0, 3): for j in range(0, 3): ls.append((i, j)) ls = [(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1] # 等价于 ls = [] for i in range(0, 3): if i < 1: for j in range(0, 3): if j > 1: ls.append((i, j))

    生成九九乘法表

    L = ['%d * %d = %d' % (x, y, x * y) for x in range(1, 10) for y in range(1, 10)]

    生成矩阵

    一维矩阵

    如[1, 2, 3]、[aa, bb, cc]

    二维矩阵

    如[[1, 2, 3], [4, 5, 6]]

    A = [ 1 2 3 4 5 6 ] A = \left[ \begin{matrix} 1 & 2 & 3\\ 4 & 5 & 6\\ \end{matrix} \right] A=[142536]

    生成一维矩阵:长度为100,每个元素都为0

    ls = [0]*100 ls = [0 for i in range(100)]

    生成二维矩阵,A=[[1, 2], [1, 2], [1, 2]]

    方法一

    A = [[1, 2]]*3

    注意: 这种方法有一个致命的问题,当执行A[0][0]=5的时候,矩阵会变成A=[[5, 2], [5, 2], [5, 2]]

    方法二

    A = [[1, 2] for i in range(3)]

    推荐使用这种列表推演表达式的方式生成二维矩阵

    Processed: 0.016, SQL: 9