Как я могу создать кортеж, в котором каждый из членов сравнивается выражением?

Что ж, вот что:

У меня есть следующий код Haskell, вот этот:

[ (a, b, c) | c <- [1..10], b <- [1..10], a <- [1..10], a ^ 2 + b ^ 2 == c ^ 2 ]

Который вернет

[(4,3,5),(3,4,5),(8,6,10),(6,8,10)]

Для тем, кто не знаком с этим, я объясню:

  • Он возвращает кортеж (a, b, c), где каждое из этих "определений" (a, b, c) получает список (от 1 до 10) и его элементы сравниваются с помощью выражения a ^ 2 + b ^ 2 == c ^ 2? (каждый член).

Как я могу сделать то же самое ( одна строка, если возможно) в Python / Ruby?

PS: они сравниваются в лексикографическом порядке.

8
задан slhck 21 August 2011 в 10:25
поделиться