创建乘法表

时间:2017-08-02 17:04:27

标签: python multiplication

我希望有一个乘法表...给定的n。 我试过......但是我的解决方案没有回复我想要的东西!

如果n = 3
def应该返回:

[[1, 2, 3, 4],
[2, 4, 6, 8],
[3, 6, 9, 12],
[4, 8, 12, 16]]

我的解决方案:

def multiplication_table(n):
    r=[]
    m = list(list(range(1*i,(n+1)*i, i)) for i in range(1,n+1))
    for i in m:
        i = [str(j).rjust(len(str(m[-1][-1]))+1) for j in i]
        r.append(i)
    return r
n=4
print(multiplication_table(n))

但它返回:

[[' 1',' 2',' 3',' 4'],
[' 2',' 4',' 6',' 8'],
[' 3',' 6',' 9',' 12'],
[' 4',' 8',' 12',' 16']]

它返回列表中的字符串...但我想在我的列表中使用int! 我试过其他方法,但我无法解决这个问题! 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

这应该可以解决你的问题。

def multiplication_table(n):
r=[]
m = list(list(range(1*i,(n+1)*i, i)) for i in range(1,n+1))
for i in m:
    i = [int(str(j).rjust(len(str(m[-1][-1]))+1)) for j in i]
    r.append(i)
return r

n = 4的 打印(multiplication_table(n))的

答案 1 :(得分:0)

n = input()   
f = lambda x, n: [x[i:i+n] for i in range(0, n**2, n)]
f([x+1 for x in range(n**2)],n)

编辑回答:

n = input()
x = [i+1 for i in range(n)]
result = []
for i in range(n):
  result.append([j*(i+1) for j in x])
print result