2017-08-02 8 views
1

与えられた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

これは私が推測するあなたの問題を解決するはずです。

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))

+0

非常にUをありがとう! –

+0

うれしかった! – nitangle

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 
+0

あなたの出力:[[1、2、3、4]、[5,6,7,8]、[9,10,11,12]、[13,14,15,16]] .... 。[1、2、3、4]、[2、4、6、8]、[3,6,9,12]、[4,8,12,16] –

+0

こんにちは。私は答えを編集しました。 – Reza

+0

これはうまくいく!.... ty –

関連する問題