В Python 2.6, с помощью chain.from_iterable()
:
>>> from itertools import chain
>>> list(chain.from_iterable(mi.image_set.all() for mi in h.get_image_menu()))
Это старается не создавать промежуточного списка.
А как насчет того, чтобы представить тексты подобным образом (с благодарностью Народному чемпиону)?
Well it's that [grain grippa][1] from Houston, Tex That bar sippa, that bar no plex I'm straight up outta that [Swishahouse][2] Where G. Dash write all the checks So [check the neck, check the wrist][3] I'm balla status from head to toe [1]Referring to the wood grain steering wheel common to luxury cars [2]Swisha House is the record label Paul Wall records for [3]"Look at my watch and necklace because they are expensive"
Просто идея, меня вдохновила разметка, используемая для добавления комментариев на этом сайте.
Итак, для базы данных создайте таблицы Lyric, LyricLine и Annotation. Аннотации имеют значения LyricLineIds, StartChar и EndChar, а также поле «Значение» или «Описание». LyricLines - это текст каждой строки, связанный с Lyric-объектом посредством LyricIds. Тексты песен хранят информацию о песнях, информацию о языке и т. Д.
Этот формат должен быть довольно легко сгенерирован из базы данных, и его преимущество заключается в том, что он более удобочитаемый, чем XML, и редактируемый на месте, поэтому вы можете проверить его Намного проще, прежде чем вам придется разрабатывать весь UI.
Я добавил этот вопрос в избранное, и с нетерпением жду возможности наблюдать за развитием сайта. Интересная работа!
Ваш первый инстинкт установить ассоциации с песней, имеющей много аннотаций, определенно сработает. Два возможных подхода к сохранению индексов аннотации начала и конца:
или
Независимые аннотации позволят вам со временем добавлять больше функций, например, позволить многим пользователям комментировать одни и те же слова. Генерировать HTML-код, который вы храните в виде большого двоичного объекта, легко из отдельных аннотаций.
Возможно, вас заинтересуют (xml) модели данных инструментов аннотации, которые довольно хорошо известны лингвистам: например, MMAX2 и Callisto. Их легко преобразовать в модели баз данных.
Лучше не хранить их как html, а как xml или как обычный текст.Независимые аннотации позволят вам со временем добавлять больше функций, например, позволить многим пользователям комментировать одни и те же слова. Генерировать HTML-код, который вы храните в виде большого двоичного объекта, легко из отдельных аннотаций.
Возможно, вас заинтересуют (xml) модели данных инструментов аннотации, которые довольно хорошо известны лингвистам: например, MMAX2 и Callisto. Их легко преобразовать в модели баз данных.
Лучше не хранить их как html, а как xml или как обычный текст.Независимые аннотации позволят вам со временем добавлять больше функций, например, позволить многим пользователям комментировать одни и те же слова. Генерировать HTML-код, который вы храните в виде большого двоичного объекта, легко из отдельных аннотаций.
Возможно, вас заинтересуют (xml) модели данных инструментов аннотации, которые довольно хорошо известны лингвистам: например, MMAX2 и Callisto. Их легко преобразовать в модели баз данных.
Независимые аннотации позволят вам со временем добавлять дополнительные функции, например, позволить многим пользователям комментировать одни и те же слова. Генерировать HTML-код, который вы храните в виде большого двоичного объекта, легко из отдельных аннотаций.
Возможно, вас заинтересуют (xml) модели данных инструментов аннотации, которые довольно хорошо известны лингвистам: например, MMAX2 и Callisto. Их легко преобразовать в модели баз данных.
Независимые аннотации позволят вам со временем добавлять больше функций, например, позволить многим пользователям комментировать одни и те же слова. Генерировать HTML-код, который вы храните в виде большого двоичного объекта, легко из отдельных аннотаций.
Возможно, вас заинтересуют (xml) модели данных инструментов аннотации, которые довольно хорошо известны лингвистам: например, MMAX2 и Callisto. Их легко преобразовать в модели баз данных.
Что касается связывания аннотаций и текстов песен, у вас может быть несколько подходов :
Свяжите предложенные выше аннотации с точными местами в текстах песен (например, номерами строк, словами, символов).
Сделать словарные фразы / слова <-> аннотациями. Непосредственно перед отображением вашего поиска словарь и вставлять в аннотации страницы. Если скорость или специфичность важны для каждой записи в словарь может быть помечен соответствующими песнями. Если вы хотите, чтобы ваши аннотации были устойчивыми к небольшие изменения в текстах, чем при поиске совпадений в текстах для использования аннотированных фраз Показатель самой длинной общей подпоследовательности .
Объедините №1 и №2