Это мое решение задач List Comprehension в Python на HackerRank.

Вам даны три целых числа X, Y и Z, представляющие размеры прямоугольного параллелепипеда, а также целое число N. Вы должны распечатать список всех возможных координат, заданных (i, j, k) на трехмерной сетке, где сумма ( i + j + k) не равно N. Здесь 0 ≤ i ≤ X; 0 ≤ j ≤ Y; 0 ≤ к ≤ Z

Формат ввода

Четыре целых числа X, Y, Z и N в четырех отдельных строках соответственно.

Ограничения

Выведите список в лексикографическом порядке возрастания.

Пример ввода

1
1
1
2

Пример вывода

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

Решение в Python 3

если __name__ == '__main__':
x = int(input())
y = int(input())
z = int(input())
n = int(input())

result = [[i, j, k]
для i в диапазоне (x+1)
для j в диапазоне (y+1)
для k в диапазоне (z+1)
if (i + j + k) != n
]
print(result)

Ссылки:

List Comprehensions, https://www.hackerrank.com/challenges/list-comprehensions, по состоянию на 29 апреля 2017 г.

Понимание списка, http://www.python-course.eu/python3_list_comprehension.php, по состоянию на 29 апреля 2017 г.