Это мое решение задач 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 г.