In this **HackerRank List Comprehensions problem solution in python**, Let's learn about list comprehensions! You are given three integers x,y and z representing the dimensions of a cuboid along with an integer n. Print a list of all possible coordinates given by (i,j,k) on a 3D grid where the sum of i+j+k is not equal to n. Here, 0<=i<=x; 0<=j<=y; 0<=k<=z. Please use list comprehensions rather than multiple loops, as a learning exercise.

## Problem solution in Python 2 programming.

lst=[int(raw_input())+1 for i in range(4)] print [[x,y,z] for x in range(lst[0]) for y in range(lst[1]) for z in range(lst[2]) if x+y+z!=lst[3]-1]

## Problem solution in Python 3 programming.

if __name__ == '__main__': x = int(input()) y = int(input()) z = int(input()) n = int(input()) print(list([i,j,k] for i in range(x+1) for j in range(y+1) for k in range(z+1) if i+j+k !=n))

### Problem solution in pypy programming.

if __name__ == '__main__': x = int(raw_input()) y = int(raw_input()) z = int(raw_input()) n = int(raw_input()) print [list([xx,yy,zz]) for xx in range(x+1) for yy in range(y+1) for zz in range(z+1) if xx+yy+zz !=n]

### Problem solution in pypy3 programming.

if __name__ == '__main__': x = int(input()) + 1 y = int(input()) + 1 z = int(input()) + 1 n = int(input()) ans = [[i, j, k] for i in range(x) for j in range(y) for k in range(z) if ((i + j + k) != n)] print (ans)

## 1 Comments

or in pypy3:

ReplyDeleteif __name__ == '__main__':

x = int(input())

y = int(input())

z = int(input())

n = int(input())

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

print (ans)