我希望有一个乘法表...给定的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! 我试过其他方法,但我无法解决这个问题! 任何人都可以帮助我吗?
答案 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