如何用函数式编写99乘法表

用map filter reduce 可以实现99乘法表吗?求解,用函数定义,放回值可以,但是以上3个函数式或者其他函数式要怎么用

生成乘法表的函数,参数order是要生成的乘法表的阶数def generateTable(order): ls = [] for i in range(0, order): ls.append([]) for j in range(0, order): ls[i].append((j + 1, i + 1)) return ls# 按行过滤已经生成的乘法表def filterTableRow(generatedTableRow): order = len(generatedTableRow) for i in range(0, order): if (generatedTableRow[i][0] == generatedTableRow[i][1]): if (i == order - 1): break else: del generatedTableRow[(i + 1):] break return generatedTableRow# 打印乘法表def printTable(generatedTable): order = len(generatedTable) for i in range(0, order): for j in range(0, len(generatedTable[i])): print("{0}*{1}={2}".format(generatedTable[i][j][0], generatedTable[i][j][1], generatedTable[i][j][0]*generatedTable[i][j][1]), end="\t") print()printTable(list(map(filterTableRow, generateTable(9))))

img


    if n < 10:
        for m in range(1, n+1):
            print(f"{m}*{n}={m*n}", end="\t")
        print()
        multiplication(n+1)


multiplication(1)

map filter reduce 没试过, 以下一行代码就能打印:

print('\n'.join([''.join([f'{j}*{i}={i*j:<3}' for j in range(1,i+1)]) for i in range(1,10)]))

1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16 
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81