九九乘法表 列表推导式

发布时间 2023-05-26 14:49:56作者: 岳宗柯

一、列表推导(Listcomprehension)

是一种简洁的语法,用于创建、转换或过滤列表的元素。它可以帮助简化常见的列表操作,使代码更加简洁易读。以下是列表推导式的一些常见用法示例

  1. 创建一个由数字 0 到 9 组成的列表:
numbers = [x for x in range(10)]
# 等同于 numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

将列表中的每个元素平方:

original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list]
# 等同于 squared_list = [1, 4, 9, 16, 25]

过滤出列表中的偶数:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [x for x in numbers if x % 2 == 0]
# 等同于 even_numbers = [2, 4, 6, 8, 10]

使用条件表达式对元素进行转换:

numbers = [1, 2, 3, 4, 5]
transformed_list = [x if x % 2 == 0 else -x for x in numbers]
# 等同于 transformed_list = [-1, 2, -3, 4, -5]

使用嵌套的循环生成多维列表:

rows = 3
cols = 3
matrix = [[(i, j) for j in range(cols)] for i in range(rows)]
# 等同于 matrix = [[(0, 0), (0, 1), (0, 2)],
#                 [(1, 0), (1, 1), (1, 2)],
#                 [(2, 0), (2, 1), (2, 2)]]

以上示例展示了列表推导式的常见用法,可以根据具体需求灵活运用。列表推导式不仅可以简化代码,还可以提高代码的可读性和表达能力。

二、九九乘法表

普通版

for i in range(1,10):
     for j in range(1, i+1):
        print(f'{j}*{i}={i*j}', end='\t')
    print()

函数

def multiplication_table():
    table = [[(i+1)*(j+1) for j in range(9)] for i in range(9)]
    for row in table:
        print("\t".join(str(num) for num in row))

multiplication_table()

面向对象

class MultiplicationTable:
    def __init__(self, n):
        self.n = n

    def generate_table(self):
        table = [[(i+1)*(j+1) for j in range(self.n)] for i in range(self.n)]
        return table

    def print_table(self):
        table = self.generate_table()
        for row in table:
            print("\t".join(str(num) for num in row))


# 示例用法
n = 9

multiplication_table = MultiplicationTable(n)
multiplication_table.print_table()