首页 > 解决方案 > 使用 2D 列表和 while 循环创建乘法表

问题描述

我必须使用三个 while 循环来创建乘法表的二维列表。该指令不允许我创建另一个列表。

我能够在列表中创建两个嵌套列表。我主要关心的是如何将两个嵌套列表相乘并收集结果。我希望在这里得到一些建议。

MT = [[],[]]
num1 = 0
num2 = 0

while num1 < 10:
    num1 = num1 + 1
    MT[0].append(num1)
    while num2 < 10:
        num2 = num2 + 1
        MT[1].append(num2)

print(MT)

我希望得到这样的结果:

在此处输入图像描述

标签: pythonpython-3.x

解决方案


如果您需要使用 while 循环(如您所说)而不是 for 循环填充乘法表,您可以这样做:

MT = [[] for i in range(11)]
MT[0].append('X')
num1 = 0
num2 = 0

# fill the multiplication table
while num1 < 10:
  num1 = num1 + 1
  MT[0].append(num1)
  MT[num1].append(num1)
  while num2 < 10:
    num2 = num2 + 1
    MT[num1].append(num1*num2)
  num2 = 0

# print the multiplication table
for row in MT:
  for e in row:
    print(e, end="\t")
  print()

推荐阅读