Как я получаю определенные атрибуты отношений/набора?

У меня был алгоритм перестановки, который я использовал для Эйлера проекта в Python:

def missing(miss,src):
    "Returns the list of items in src not present in miss"
    return [i for i in src if i not in miss]


def permutation_gen(n,l):
    "Generates all the permutations of n items of the l list"
    for i in l:
        if n<=1: yield [i]
        r = [i]
        for j in permutation_gen(n-1,missing([i],l)):  yield r+j

, Если

n<len(l) 

у Вас должна быть вся комбинация, Вам нужно без повторения, Вам нужен он?

Это - генератор, таким образом, Вы используете его в чем-то вроде этого:

for comb in permutation_gen(3,list("ABCDEFGH")):
    print comb 
7
задан Logan Capaldo 6 July 2009 в 02:36
поделиться

1 ответ

Если автомобили является ассоциацией человека , а имя является свойством автомобиля , то вы можете сделать следующее:

# person = Person.find(conditions)
person.cars.collect { |car| car.name }

Или даже (благодаря ActiveSupport и / или Ruby 1.9):

person.cars.collect(&:name)

Обновление: это задокументировано в следующих местах:

Обновление 2: пример, который применяет форматирование:

person.cars.collect { |car| "(#{car.name})" }
9
ответ дан 7 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: