#【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]は除外する。
▼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