0
0

More than 3 years have passed since last update.

【python】整数の組み合わせで2次元配列を作成するプログラム 

Posted at

【python】整数の組み合わせで多次元配列を作成するプログラム 

自分用のメモです。

▼設問

  • 重複のない[i, j, k]の2次元配列を作成する。
  • i, j, kの条件は、与えられる正の整数x,y,zで決まる
  • 0<=i<=x, 0<=j<=y, 0<=k<=z
  • ただし、i+j+kがnとなる場合の[i,j,k]は除外する。

URL

▼sample input

x,y,z,n=1,1,1,2

▼sample output

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]

▼my answer

if __name__ == '__main__':
    x = int(input())
    y = int(input())
    z = int(input())
    n = int(input())

    res=[]

for i in range(x+1):
    for j in range(y+1):
        for k in range(z+1):
            if i+j+k != n:
                res.append([i,j,k])

print(res)



[i, j, k]に対し、一つづつfor文を回していく。(計3回まわす)


内包表記で簡略化

処理 for 変数 in イテラブル if 条件
 └ ifの条件を満たす場合のみ処理を実行する。

if __name__ == '__main__':
    x,y,z,n = [int(input()) for _ in range(4)]

    print([[i,j,k] for k in range(z+1) for j in range(y+1) for i in range(x+1)if i+j+k != n])   



▼普通のfor文との違い
実行結果がlist型になる。
 └ appendなど、要素を追加したり足したりする作業が不要

for _ in range(n)
処理をn回まわす。
変数不要なので、便宜上「 _ 」を入れておく。
 └ 空白はエラーになる

空白のfor
i=-1
for  in range(4):
    i+=1
    print(i)

#出力
SyntaxError: invalid syntax
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0