Генератор — это… Что такое генератор?
Она содержит два генератора: генератор поисковой частоты собран на транзисторах V1 и V2, генератор эталонной частоты — на транзисторах V3 и V4.
Каким должно быть сопротивление обмоток электрических машин (вспомогательный генератор в системе СТН, индукторный генератор в системе ВЧ, обращенный синхронный генератор в системе БСВ) при измерении сопротивления постоянному току обмоток трансформаторов и электрических машин в системах возбуждения?
Если бы вы позволили своим меньшим земным братьям использовать гораздо больше энергии, чем могут дать какие-то жалкие десять генераторов, тогда за украденный генератор не платили бы по миллиону марок, и он не представлял бы для нас, несчастных, такого искушения.
Электрик, худощавый блондин с бачками, сказал, что вышел из строя генератор, надо менять, а генераторов, кажется, нет.
Попади эта штуковина в руки министерства обороны любой страны, оно сразу же переименует себя в министерство агрессии, тем более что технология изготовления таких генераторов хоть и сложна и дорогостоящая, но вполне доступна нашей промышленности, а стали, меди и вольфрама, из которых состоит генератор, на планете пока предостаточно.
Если бы вы позволили своим меньшим земным братьям использовать гораздо больше энергии, чем могут дать какие–то жалкие десять
Когда в 1990-м году фирма iD-Software выпустила на рынок программного обеспечения генератор уровней для популярной игры «Doom» , никто и предположить не мог, что наступил момент смены вех; что произошло событие, разделившую историю человеческой культуры на две (пока неравные) части: на историю до выхода генератора в свет и на историю после его выхода.
На этом же заводе производительная работа высокочастотного генератора мощностью сто десять киловатт по закалке коленчатых валов составляла одну целую и восемь десятых часа за смену, остальное время, около пяти часов, генератор работал вхолостую, ежегодные потери составляли двадцать шесть тысяч киловатт-часов…
Он включил тумблер с надписью «Дополнительный генератор» и до упора вывернул регулятор мощности генератора.
Ровно в девять-ноль-ноль отдан приказ запустить центральный
генератор — Викисловарь
Морфологические и синтаксические свойства[править]
падеж | ед. ч. | мн. ч. |
---|---|---|
Им. | генера́тор | генера́торы |
Р. | генера́тора | генера́торов |
Д. | генера́тору | генера́торам |
В. | генера́тор | генера́торы |
Тв. | генера́тором | генера́торами |
Пр. | генера́торе | генера́торах |
ге-не-ра́-тор
Существительное, неодушевлённое, мужской род, 2-е склонение (тип склонения 1a по классификации А. А. Зализняка).
Корень: -генер-; суффикс: -атор [Тихонов, 1996].
Произношение[править]
- МФА: ед. ч. [ɡʲɪnʲɪˈratər] мн. ч. [ɡʲɪnʲɪˈratərɨ]
Семантические свойства[править]
Генератор [1] электроэнергии И это правильно хотя бы потому, что инициатива по всем новым машинам исходила от него, от Ильюшина, генератором [2] идей был онЗначение[править]
- техн. механизм или устройство, преобразующее энергию одного вида в энергию другого вида, чаще всего, в электрическую ◆ Генератор постоянного тока (то же, что динамо-машина).
◆ Вся работа, при условии получения генератора, может быть закончена в несколько месяцев. И. Э. Бабель, «Статьи в газете «Заря Востока»», 1922 г. (цитата из Национального корпуса русского языка, см. Список литературы) ◆ В пещере в это время устанавливали большие паровые машины и огромные генераторы электрического тока. В. А. Обручев, «Тепловая шахта», 1920 г. (цитата из Национального корпуса русского языка, см. Список литературы) - перен. некто или нечто, являющееся источником чего-либо ◆ И одновременно указание на источник силы автора как практика: он и генератор идей, и их исполнитель – важнейшее условие эффективного управления.
- техн. печь особого устройства для производства генераторного газа ◆ В технике пользование газообразным топливом также распространено, с той разницей, что здесь, вместо дорогого светильного газа, применяют гораздо более дешёвый, так называемый «генераторный газ», получаемый при неполном сгорании топлива в специально устроенном генераторе. П. Н. Лебедев, «Способы получения высоких температур», 1899 г. (цитата из Национального корпуса русского языка, см. Список литературы)
Синонимы[править]
- источник, производитель
- источник, родитель, начало, кладезь
- —
Антонимы[править]
- частичн.: потребитель
- губитель, убийца
Гиперонимы[править]
- источник, устройство, агрегат
- источник
- печь, реактор
Гипонимы[править]
- солнечная батарея, лёдогенератор, парогенератор, газогенератор, электростанция, электрогенератор, тахогенератор, теплогенератор
- аэроионогенератор
- —
Родственные слова[править]
Этимология[править]
Происходит от лат. generātor «производитель, предок, родитель», из generāre «производить, порождать, создавать», далее из genus «происхождение, род», далее из genere «рожать, порождать» (восходит к праиндоевр. *gen-/*gon-/*gn- «порождать»).
Фразеологизмы и устойчивые сочетания[править]
Перевод[править]
Библиография[править]
| Для улучшения этой статьи желательно:
|
Дизайн человека генератор | Секреты
Аура: Открытая и окутывающая
Тема ложного «Я»: Фрустрация
Стратегия: Отклик
Генераторы – это около 35% населения планеты. Они являются движущей силой нашего мира, оказывают или созидательное, или разрушающее воздействие на всех вокруг. Этот тип отличается бесконечной энергией, способностью долго работать. Но при условии, что это любимое дело, от которого он получает наслаждение. Их главная задача в жизни – не инициировать, а ждать отклика. Если сделать наоборот, получается разочарование, теряется смысл и предназначение своего существования.
Определить свой тип очень важно. От Типа в Дизайне Человека зависит система жизни каждого, принятия решений, сфера деятельности и т.д. В дальнейшем это поможет правильно расшифровать свою Рейв-карту, которая откроет вам ключ к гармонии с внутренним миром. И, конечно, достичь максимального счастья.
Сакральный центр Генератора
Сакральный центр в Дизайне Человека связан с половой системой каждого и отвечает за сексуальность, жизненность и работоспособность. Если он открыт (это вы можете наблюдать построив свою карту) — человек испытывает постоянную нехватку работы, секса, еды и т.д. Большая часть человечества имеет закрытый Сакральный центр. Это значит что у них постоянный и устойчивый источник жизненной силы.
Генераторам присущ определенный или закрытый сакральный центр. У них внутри находится постоянный поток энергии, которую надо куда-нибудь выплеснуть. Генераторам очень важно найти занятие для своей неиссякаемой энергии, которое будет им нравиться. Это ключ к их счастью.
Стратегия Генератора
Стратегия – это стиль поведения, направленный на достижение удовлетворения в жизни. Каждый тип имеет свой способ приобретения счастья, принятия решений из подсознания. Это определяет траекторию движения по жизни. Если человек неправильно трактует внутренние отклики и принимает такие же решения, это приводит к депрессиям, замкнутости.
Свою стратегию не только полезно знать, но и интересно. Ведь каждый человек хочет найти свое предназначение, находится в постоянных поисках верных решений в жизни. В Дизайне Человека Стратегия помогает найти доступ к внутреннему Авторитету, который и помогает идти по правильному пути.
Генератору или Созидателю присуща такая модель – идти по жизни в ожидании занятия, которое откликнется внутри. Этот тип характерен для творческих личностей. Их главная задача – найти дело, которое будет перекликаться с внутренним миром. Часто, если Генератор инициирует, вместо ожидания отклика, это приводит к ошибкам. Данный тип людей должен довериться потоку жизни и не руководствоваться правилом «под лежачий камень вода не течет». Счастливые Генераторы обладают безграничным терпением и готовы постоянно искать свое предназначение, дело жизни. До тех пор, пока не не почувствуется отклик – движущая сила Генератора.
Ложное Я
Ложное я – это неправильная и ненастоящая жизненная стратегия, то, чем мы не являемся. Например, если человек взял извне какие-либо привычки, интересы и применил их на своей жизни, называя своими собственными. Но это может не подходить ему по характеру, мышлению. Ложное я приводит к комплексам, расстройствам, обидам.
Генераторы и испытывают расстройство при ложном я. Так как они реализуются в жизни через поток энергии, ее отсутствие приводит к негативным последствиям – нет желания и сил делать что-либо.
Энергетический поток приходит к расстройству, если Генератор:
- указывает своей энергии, то есть делает вещи которые ему неприятны;
- не реагирует на отклик и не прислушивается к нему;
- занимается делом, которое ему не нравится и не приносит удовольствия.
Аура Генератора
Энергетическое поле этого типа самое притягивающее, открытое и приветливое. Природа Генератора – это откликаться. Они могут легко пропустить через себя другую ауру без вреда для самого себя. Это даст возможность почувствовать мысли другого человека или события. Главное, что нужно сделать Генераторам – перестать проявлять инициативу и ждать отклика.
Этому типу не нужно переживать из-за чего либо, что бы он хотел получить, но не смог в силу определенных обстоятельств или бездейственности. Нужно сконцентрироваться на своих желаниях и принимать сигналы, довериться своей природе, которая приложит максимум усилий для вашего счастья. Аура Генератора создана для того, чтобы принимать людей и ситуацию из внешнего мира.
Подпись Генератора
Подпись – это один из аспектов, который помогает понять свой тип и его особенности. Он означает эффект, который вы получаете при прожитии своего дизайна правильно. У Генератора это удовлетворение. Он постоянно чувствует застревание, но это часть природы этого типа, которую надо принять. Если он будет сопротивляться своей Стратегии, то удовлетворения не постичь. Генератор должен научиться слушать свой внутренний голос или отклик, который даст понять, как действовать правильно, чтобы жить корректно для себя. Расшифровка Бодиграфа объясняет человеку как прийти к своей подписи и понять особенности своей природы.
Отношения Генераторов, совместимости
В зависимости от типа партнеров по жизни, друзей, родных по-разному строятся их отношения. Зная, какой дизайн у товарища, любимого человека, можно понять, в чем причина недопонимания и как это исправить, чтобы жить в гармонии.
- Отношения Генератор и Манифестор – им очень удобно быть вместе, ведь никто так не решает бытовые вопросы, как Маниферстор. Но их близкие взаимоотношения не так просты. Манифестор считает свое мнение самым правильным. Он никогда не будет зависим от партнера, чаще всего не сможет сотрудничать и идти на компромисс. Закрытая природа Манифестора будет порождать ревность и непонимание со стороны открытого Генератора. Последний будет жить в атмосфере негативных эмоций, так как его партнер часто злится и не скрывает этого. Манифестор любит иногда побыть один, а Генератор попытается вовлечь его в какую-нибудь активность, что также приведет к непониманию. Чтобы жить счастливо между собой, им нужно научиться принимать партнера таким, какой он есть и не пытаться это изменить.</>
- Отношения Генератор и Проектор – крепкий тандем, где один направляет, а другой следует за ним. Но в близких отношениях могут возникнуть недопонимания. Проектор будет манипулировать откликами Генератора, пытаться подстроить ситуацию под себя. Кроме того, аура этого типа постоянно исследует энергетическое поле партнера. Это может стать причиной утомления, так как никто не любит быть под постоянным прицелом. Со стороны Генератора для Проектора также могут возникнуть неудобства. Партнер будет постоянно заполнять собой все пространство вокруг, что приводит к усталости. Проектор начнет искать возможности убежать. Их гармоничные взаимоотношения возможно лишь при полном уважении друг к другу и природе. Тогда будет достигнут максимум – Генератор получит шанс быть управляемым, а Проектор – жизненные силы на новые свершения.</>
- Отношения Генератор и Рефлектор. Последний – это странный тип для остальных личностей, ведь его активность и общее состояние зависит от фаз луны. Генератор не может понять медлительность Рефлектора. Последнему не понравится постоянная спешка Генератора и вечная погоня за ним будет утомлять партнера. Аура Генератора – открытая и принимающая, в то время как у Рефлектора она закрыта и направлена внутрь себя. Это плохо совмещаемые типы людей. Хороший вариант отношений, где Рефлектор – объединяющее звено в отношениях и развитии других Генераторов.</>
- Генератор – Генератор. Отношения двух одинаковых типов можно назвать гармоничными. У обоих открытая аура, направленная на поглощение новой информации, обое двигаются по жизни откликаясь. В отношениях Генератор-Генератор партнеры постоянно переплетаются энергетическими полями, хорошо воспринимая и чувствуя друг друга. Иногда им не нужно спрашивать, так как за них это делают их ауры. Они понимают друг друга с полуслова. Это честные, легкие отношения, основанные на отклике.
Ребенок Генератор
Чтобы понимать, как общаться с ребенком, каким способом воспитывать, чтобы вырастить счастливого человека, важно не просто знать Тип, а учитывать его особенности.
Генератор должен откликаться, поэтому указывать, что делать, а что нет, тут не получится. Спрашивайте, и ребенок будет отвечать. Если вы хотите чтобы он был счастлив – отбросьте свои планы на него. Важно умело обращаться с его откликами и задавать правильные вопросы, а не приказывать поступать так или иначе.
Генератор и деньги
Главное для этого типа, чтобы его труд и потраченная энергия вознаграждалась. Деньги для Генератора – это способ получить удовольствие, занимаясь любимым хобби. Он не стремится захватить власть над всем миром или заработать как можно больше, это устремление “ложного Я”. Чтобы Генератор был счастлив, он должен, прежде всего, быть удовлетворен своим трудом.
Дизайн Человека Генератор Профиль
Профиль в Дизайне Человека – это линии, которые вырисовывают характер и личность типа. Узнать его можно, сделав бесплатную демо-карту на сайте, а вот детальную информацию можно получить, заказав подробную персональную расшифровку Рейв-карты. Из нее вы узнаете, на что не стоит тратить энергию, а куда можно направить силы, чтобы добиться Генераторской подписи — удовлетворенния.
- генератор профиль 1/3 Исследователь-Мученик — человек, который открывает для себя все вокруг путем учения на своих ошибках, при помощи собственного опыта. Эта личность находится глубоко в себе. Его главная цель – обеспечение прочной основы в жизни.
- генератор профиль 1/4 Исследователь-Оппортунист — личность, которая постоянно развивается и узнает новое. Для него важно постоянное совершенствование и возможность делиться этой информацией с друзьями и близкими людьми.
- генератор профиль 2/4 Отшельник-Оппортунист — личность, которая часто в одиночестве занимается тем, что любит. У них есть тайная миссия и они тщательно заботятся о собственной частной жизни.
- генератор профиль 2/5 Отшельник-Еретик — любит быть один, жить по установленным самим собой правилам. Для него важно жить целеустремленно и мотивированно. Важна также и репутация в обществе.
- генератор профиль 3/5 Мученик-Еретик — постоянный испытатель, рисковый человек, экспериментатор, которого не останавливают неудачи. Он все время стремиться открыть что-то новое.
- генератор профиль 3/6 Мученик-Ролевая Модель — испытывают все на себе, не пугаются проблем и сложных испытаний. Своим примером бесстрашия могут влиять и мотивировать людей.
- генератор профиль 4/1 Оппортунист-Исследователь — человек, который имеет свою цель и неизменную личность. Он прочно основан в жизни, благодаря обучению и стремлению с детства. Это хорошие учителя.
- генератор профиль 4/6 — Оппортунист-Ролевая Модель — это наблюдатель. Он хороший друг, который стремится повлиять на всех вокруг.
- генератор профиль 5/1 Еретик-Исследователь — человек-помощник. Он всегда смотрит на обстоятельства с другой изученной им стороны.
- генератор профиль 5/2 Еретик-Отшельник — закрытый человек, который постоянно ждет, что его позовут, чтобы проявить себя в общении с другими людьми.
- генератор профиль 6/2 Ролевая Модель-Отшельник — человек, с множеством испытаний в первой половине жизни. Во второй они наблюдают как ошибаются другие, а в третьей — достигают прозрения и становятся примером образа жизни для других.
- генератор профиль 6/3 Ролевая Модель-Мученик — оптимист, позитивный человек, который даже на трудности смотрит с улыбкой. Признает и принимает себя и становится собственным примером.
Знаменитые Генераторы: Далай-Лама, Карл Юнг, Мадонна, Моцарт, Гоголь, Рената Литвинова, Джим Керри, Джон Леннон, Брюс Уиллис, Мадонна, Джулия Робертс, Эдди Мерфи, Альберт Эйнштейн, Бетховен.
[smartslider3 slider=2]
Книга «Пробуждение Генератора»
Осознание своей природы и раскрытие уникальной частоты
Данная книга основана на профессиональных материалах по теме Human Design, а также моём личном опыте и наблюдениях. В этом издании подробно изложены механизмы Генераторского естества (Манифестирующего тоже), его функции, проблемы и методы восстановления природной частоты вибраций. 2 книги в одной.
Прочитав эту книгу вы узнаете следующее:
- Основы Генераторской сути с примерами
- Генератор раб/Генератор строитель
- Обуславливание/Разобуславливание
- Внешний Авторитет и иллюзии
- Внутренний Авторитет
- Ложное Я и его голоса
- Основы сакрального центра
- Как заряжаться и разряжаться
- Что такое отклик
- Стратегии для корректных решений
- Ошибки Генератора
- Основной страх Генератора
- Что значит сдаться отклику
- Отклик и эмоциональный Центр
- Что такое настоящая мутация Генератора
- Каких людей вокруг себя нужно собирать Генератору
- Польза Фрустрации
А также многое другое 56 Страниц PDF.
Купить Книгу
Дизайн человека Генератор расшифровка
Вы можете подробно расшифровать свой Бодиграф как Генератора онлайн бесплатно, получив демо-карту. После заполнения даты, места и времени рождения, вы увидите схему Бодиграф, стратегию, профиль, ложное я, авторитет, определение. Я рекомендую узнать более точное время рождения. Если написать приблизительное число, оно не повлияет на достоверность информации, которую вы узнаете из демо-карты. Разбег во времени +/- 7 минут, как правило, подействует лишь на углубленные данные, такие как мотивация, окружение и т.д.
Дизайн Человека – это наука, основанная на генетике, биохимии, астрологии и древних верованиях. В комплексе они позволяют подробно описать структуру человеческой жизни, вплоть до питания и предназначения. Чтобы глубже познать себя и свою природу, Генератору нужно подробно расшифровать свою Рейв-карту с детальным объяснением генетического кода, толкованием направлений в жизни, которые помогут достичь удовлетворения.
Бодиграф включает в себя 9 центров, 36 каналов и 64 гексаграммы. Последние активируются при помощи линий с цветами и тонами. Люди могут быть похожи по типу, одинаковым центрам и каналам. Но на глубоких уровнях каждый Генератор индивидуален. Таким образом, возможных комбинаций Дизайна Человека может быть тысячи.
Поэтому, для подробного объяснения каждой детали вашего генетического кода и глубокого познания энергетического и внутреннего мира, нужна подробная расшифровка у специалиста. Существует два ее способа – живая консультация с экспертом или электронная, которую вам пришлют на почту. Каждый из них имеет свои преимущества. Живое общение – это отличный вариант для продвинутых в Дизайне Человека. Для Генераторов-новичков будет удобна электронная версия, где все объясняется понятным и легким к восприятию языком.
Живая консультация (плюсы минусы)
Этот вид предполагает общение со специалистом при личной встрече или по видеосвязи в Скайп. Оно длится один-два часа, где вам подробно рассказывают обо всех аспектах, отвечают на ваши вопросы, дают советы. Преимущества живой консультации:
- Обратная связь. Вы можете задать вопросы, на месте выяснить непонятные аспекты в расшифровке Бодиграфа Генератора;
- Специальные техники чтения карты и сопоставление вероятностей;
- Живое общение в приятной компании.
Недостатки персональной консультации:
- Часто специалисты могут быть заняты в нужное время, и придется ждать. Они, кроме таких консультаций, проводят семинары, учат других или повышают квалификацию сами;
- За один-два часа невозможно рассказать обо всем. Специалист сокращает информацию, чтобы донести главное. Вам придется или узнавать остальное самостоятельно или приходить на дополнительную встречу;
- Стоимость больше, чем электронная. Все потому что специалист ищет время, тратит его и на консультацию с вами, и на предварительную подготовку.
Электронная расшифровка (плюсы)
Электронная расшифровка Рейв-карты происходит следующим образом. Вы выбираете ее тип. Расшифровка может быть базовой, которая включает 1-ю часть и расширение — 2-ю часть. Также есть полная — она объединяет весь пакет и является более удобной для изучения. Кроме того, при заказе полной версии вы получите льготную консультацию и дополнительные материалы. Все расшифровки составляются из нашей внутренней базы, которая основана на профессиональных источниках. После оплаты вы получаете готовый документ Бодиграфа Генератора с доступным изложением, дополненным примерами и советами.
Электронное толкование Бодиграфа имеет несколько преимуществ:
- Четкая и структурированная подача, разъяснение своего Бодиграфа блоками;
- Возможность читать и изучать свою природу на любом электронном устройстве и в любом удобном для вас месте;
- Неограниченный объем материала, который не поместился бы в одну живую консультацию;
- Меньшая стоимость, в сравнении с живым общением, без потери его качества.
- Простота подачи информации, которая будет понятна как новичкам, так и опытным специалистам.
Вы можете заказать подробную расшифровку Рейв-карты внизу этой страницы. Сервис предоставляет глубокую детализацию Бодиграфа, что не каждый Аналитик способен выдать на консультации.
По доступной цене вы получите самую полную инструкцию вашей жизни с авторскими рекомендациями. Таким образом, есть возможность сэкономить время, ведь оно не будет тратиться как на самостоятельную расшифровку, так и на осуществление ошибок в жизни. Это ваш шанс поэкспериментировать и, как истинному Генератору, получить свое законное удовлетворение.
Все о выражениях-генераторах, генераторах списков, множеств и словарей / Хабр
Заключительная часть моего цикла, посещенного работе с коллекциями. Данная статья самостоятельная, может изучаться и без предварительного изучения предыдущих.Эта статья глубже и детальней предыдущих и поэтому может быть интересна не только новичкам, но и достаточно опытным Python-разработчикам.
Будут рассмотрены: выражения-генераторы, генераторы списка, словаря и множества, вложенные генераторы (5 вариантов), работа с enumerate(), range().
А также: классификация и терминология, синтаксис, аналоги в виде циклов и примеры применения.
Я постарался рассмотреть тонкости и нюансы, которые освещаются далеко не во всех книгах и курсах, и, в том числе, отсутствуют в уже опубликованных на Habrahabr статьях на эту тему.
Оглавление:
1. Определения и классификация.
2. Синтаксис.
3. Аналоги в виде цикла for и в виде функций.
4. Выражения-генераторы.
5. Генерация стандартных коллекций.
6. Периодичность и частичный перебор.
7. Вложенные циклы и генераторы.
8. Использование range().
9. Приложение 1. Дополнительные примеры.
10. Приложение 2. Ссылки по теме.
1. Определения и классификация
1.1 Что и зачем
- Генераторы выражений предназначены для компактного и удобного способа генерации коллекций элементов, а также преобразования одного типа коллекций в другой.
- В процессе генерации или преобразования возможно применение условий и модификация элементов.
- Генераторы выражений являются синтаксическим сахаром и не решают задач, которые нельзя было бы решить без их использования.
1.2 Преимущества использования генераторов выражений
- Более короткий и удобный синтаксис, чем генерация в обычном цикле.
- Более понятный и читаемый синтаксис чем функциональный аналог сочетающий одновременное применение функций map(), filter() и lambda.
- В целом: быстрее набирать, легче читать, особенно когда подобных операций много в коде.
1.3 Классификация и особенности
Сразу скажу, что существует некоторая терминологическая путаница в русских названиях того, о чем мы будем говорить.
В данной статье используются следующие обозначения:
- выражение-генератор (generator expression) — выражение в круглых скобках которое выдает создает на каждой итерации новый элемент по правилам.
- генератор коллекции — обобщенное название для генератора списка (list comprehension), генератора словаря (dictionary comprehension) и генератора множества (set comprehension).
В отдельных местах, чтобы избежать нагромождения терминов, будет использоваться термин «генератор» без дополнительных уточнений.
2. Синтаксис
Для начала приведем иллюстрацию общего синтаксиса выражения-генератора.
Важно: этот синтаксис одинаков и для выражения-генератора и для всех трех типов генераторов коллекций, разница заключается, в каких скобках он будет заключен (смотрите предыдущую иллюстрацию).
Общие принципы важные для понимания:
- Ввод — это итератор — это может быть функция-генератор, выражение-генератор, коллекция — любой объект поддерживающий итерацию по нему.
- Условие — это фильтр при выполнении которого элемент пойдет в финальное выражение, если элемент ему не удовлетворяет, он будет пропущен.
- Финальное выражение — преобразование каждого выбранного элемента перед его выводом или просто вывод без изменений.
2.1 Базовый синтаксис
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] # Пусть у нас есть исходный список
list_b = [x for x in list_a] # Создадим новый список используя генератор списка
print(list_b) # [-2, -1, 0, 1, 2, 3, 4, 5]
print(list_a is list_b) # False - это разные объекты!
По сути, ничего интересного тут не произошло, мы просто получили копию списка. Делать такие копии или просто перегонять коллекции из типа в тип с помощью генераторов особого смысла нет — это можно сделать значительно проще применив соответствующие методы или функции создания коллекций (рассматривались в первой статье цикла).
Мощь генераторов выражений заключается в том, что мы можем задавать условия для включения элемента в новую коллекцию и можем делать преобразование текущего элемента с помощью выражения или функции перед его выводом (включением в новую коллекцию).
2.2 Добавляем условие для фильтрации
Важно: Условие проверяется на каждой итерации, и только элементы ему удовлетворяющие идут в обработку в выражении.
Добавим в предыдущий пример условие — брать только четные элементы.
# if x % 2 == 0 - остаток от деления на 2 равен нулю - число четное
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x for x in list_a if x % 2 == 0]
print(list_b) # [-2, 0, 2, 4]
Мы можем использовать несколько условий, комбинируя их логическими операторами:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x for x in list_a if x % 2 == 0 and x > 0]
# берем те x, которые одновременно четные и больше нуля
print(list_b) # [2, 4]
2.3 Добавляем обработку элемента в выражении
Мы можем вставлять не сам текущий элемент, прошедший фильтр, а результат вычисления выражения с ним или результат его обработки функцией.
Важно: Выражение выполняется независимо на каждой итерации, обрабатывая каждый элемент индивидуально.
Например, можем посчитать квадраты значений каждого элемента:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x**2 for x in list_a]
print(list_b) # [4, 1, 0, 1, 4, 9, 16, 25]
Или посчитать длины строк c помощью функции len()
list_a = ['a', 'abc', 'abcde']
list_b = [len(x) for x in list_a]
print(list_b) # [1, 3, 5]
2.4 Ветвление выражения
Обратите внимание: Мы можем использовать (начиная с Python 2.5) в выражении конструкцию if-else для ветвления финального выражения.
В таком случае:
- Условия ветвления пишутся не после, а перед итератором.
- В данном случае if-else это не фильтр перед выполнением выражения, а ветвление самого выражения, то есть переменная уже прошла фильтр, но в зависимости от условия может быть обработана по-разному!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x if x < 0 else x**2 for x in list_a]
# Если x-отрицательное - берем x, в остальных случаях - берем квадрат x
print(list_b) # [-2, -1, 0, 1, 4, 9, 16, 25]
Никто не запрещает комбинировать фильтрацию и ветвление:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x**3 if x < 0 else x**2 for x in list_a if x % 2 == 0]
# вначале фильтр пропускает в выражение только четные значения
# после этого ветвление в выражении для отрицательных возводит в куб, а для остальных в квадрат
print(list_b) # [-8, 0, 4, 16]
Этот же пример в виде цикла
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = []
for x in list_a:
if x % 2 == 0:
if x < 0:
list_b.append(x ** 3)
else:
list_b.append(x ** 2)
print(list_b) # [-8, 0, 4, 16]
2.5 Улучшаем читаемость
Не забываем, что в Python синтаксис позволяет использовать переносы строк внутри скобок. Используя эту возможность, можно сделать синтаксис генераторов выражений более легким для чтения:
numbers = range(10)
# Before
squared_evens = [n ** 2 for n in numbers if n % 2 == 0]
# After
squared_evens = [
n ** 2
for n in numbers
if n % 2 == 0
]
3. Аналоги в виде цикла for и в виде функций
Как уже говорилось выше, задачи решаемые с помощью генераторов выражений можно решить и без них. Приведем другие подходы, которые могут быть использованы для решения тех же задач.
Для примера возьмем простую задачу — сделаем из списка чисел список квадратов четных чисел и решим ее с помощью трех разных подходов:
3.1 Решение с помощью генератора списка
numbers = range(10)
squared_evens = [n ** 2 for n in numbers if n % 2 == 0]
print(squared_evens) # [0, 4, 16, 36, 64]
3.2. Решение c помощью цикла for
Важно: Каждый генератор выражений можно переписать в виде цикла for, но не каждый цикл for можно представить в виде такого выражения.
numbers = range(10)
squared_evens = []
for n in numbers:
if n % 2 == 0:
squared_evens.append(n ** 2)
print(squared_evens) # [0, 4, 16, 36, 64]
В целом, для очень сложных и комплексных задач, решение в виде цикла может быть понятней и проще в поддержке и доработке. Для более простых задач, синтаксис выражения-генератора будет компактней и легче в чтении.
3.3. Решение с помощью функций.
Для начала, замечу, что выражение генераторы и генераторы коллекций — это тоже функциональный стиль, но более новый и предпочтительный.
Можно применять и более старые функциональные подходы для решения тех же задач, комбинируя map(), lambda и filter().
numbers = range(10)
squared_evens = map(lambda n: n ** 2, filter(lambda n: n % 2 == 0, numbers))
print(squared_evens) # <map object at 0x7f661e5dba20>
print(list(squared_evens)) # [0, 4, 16, 36, 64]
# Примечание: в Python 2 в переменной squared_evens окажется сразу список, а в Python 3 «map object», который мы превращаем в список с помощью list()
Несмотря на то, что подобный пример вполне рабочий, читается он тяжело и использование синтаксиса генераторов выражений будет более предпочительным и понятным.
4. Выражения-генераторы
Выражения-генераторы (generator expressions) доступны, начиная с Python 2.4. Основное их отличие от генераторов коллекций в том, что они выдают элемент по-одному, не загружая в память сразу всю коллекцию.
UPD: Еще раз обратите внимание на этот момент: если мы создаем большую структуру данных без использования генератора, то она загружается в память целиком, соответственно, это увеличивает расход памяти Вашим приложением, а в крайних случаях памяти может просто не хватить и Ваше приложение «упадет» с MemoryError. В случае использования выражения-генератора, такого не происходит, так как элементы создаются по-одному, в момент обращения.
Пример выражения-генератора:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
my_gen = (i for i in list_a) # выражение-генератор
print(next(my_gen)) # -2 - получаем очередной элемент генератора
print(next(my_gen)) # -1 - получаем очередной элемент генератора
Особенности выражений-генераторов
- Генаратор нельзя писать без скобок — это синтаксическая ошибка.
# my_gen = i for i in list_a # SyntaxError: invalid syntax
- При передаче в функцию дополнительные скобки необязательны
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_sum = sum(i for i in list_a) # my_sum = sum((i for i in list_a)) # так тоже можно print(my_sum) # 12
- Нельзя получить длину функцией len()
# my_len = len(i for i in list_a) # TypeError: object of type 'generator' has no len()
- Нельзя распечатать элементы функцией print()
print(my_gen) # <generator object <genexpr> at 0x7f162db32af0>
- Обратите внимание, что после прохождения по выражению-генератору оно остается пустым!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i in list_a) print(sum(my_gen)) # 12 print(sum(my_gen)) # 0
- Выражение-генератор может быть бесконечным.
Будьте осторожны в работе с такими генераторами, так как при не правильном использовании «эффект» будет как от бесконечного цикла.import itertools inf_gen = (x for x in itertools.count()) # бесконечный генератор от 0 to бесконечности!
- К выражению-генератору не применимы срезы!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i in list_a) my_gen_sliced = my_gen[1:3] # TypeError: 'generator' object is not subscriptable
- Из генератора легко получать нужную коллекцию. Это подробно рассматривается в следующей главе.
5. Генерация стандартных коллекций
5.1 Создание коллекций из выражения-генератора
Создание коллекций из выражения-генератора с помощью функций list(), tuple(), set(), frozenset()
Примечание: Так можно создать и неизменное множество и кортеж, так как неизменными они станет уже после генерации.
Внимание: Для строки такой способ не работает! Синтаксис создания генератора словаря таким образом имеет свои особенности, он рассмотрен в следующем под-разделе.
- Передачей готового выражения-генератора присвоенного переменной в функцию создания коллекции.
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i in list_a) # выражение-генератор my_list = list(my_gen) print(my_list) # [-2, -1, 0, 1, 2, 3, 4, 5]
- Написание выражения-генератора сразу внутри скобок вызываемой функции создания коллекции.
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_list = list(i for i in list_a) print(my_list) # [-2, -1, 0, 1, 2, 3, 4, 5]
То же самое для кортежа, множества и неизменного множества# кортеж my_tuple = tuple(i for i in list_a) print(my_tuple) # (-2, -1, 0, 1, 2, 3, 4, 5) # множество my_set = set(i for i in list_a) print(my_set) # {0, 1, 2, 3, 4, 5, -1, -2} # неизменное множество my_frozenset = frozenset(i for i in list_a) print(my_frozenset) # frozenset({0, 1, 2, 3, 4, 5, -1, -2})
5.2 Специальный синтаксис генераторов коллекций
В отличии от выражения-генератора, которое выдает значение по-одному, не загружая всю коллекцию в память, при использовании генераторов коллекций, коллекция генерируется сразу целиком.
Соответственно, вместо особенности выражений-генераторов перечисленных выше, такая коллекция будет обладать всеми стандартными свойствами характерными для коллекции данного типа.
Обратите внимание, что для генерации множества и словаря используются одинаковые скобки, разница в том, что у словаря указывается двойной элемент ключ: значение.
- Генератор списка (list comprehension)
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_list = [i for i in list_a] print(my_list) # [-2, -1, 0, 1, 2, 3, 4, 5]
Не пишите круглые скобки в квадратных!list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_list = [(i for i in list_a)] print(my_list) # [<generator object <genexpr> at 0x7fb81103bf68>]
- Генератор множества (set comprehension)
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_set= {i for i in list_a} print(my_set) # {0, 1, 2, 3, 4, 5, -1, -2} - порядок случаен
- Генератор словаря (dictionary comprehension)
переворачивание словаряdict_abc = {'a': 1, 'b': 2, 'c': 3, 'd': 3} dict_123 = {v: k for k, v in dict_abc.items()} print(dict_123) # {1: 'a', 2: 'b', 3: 'd'} # Обратите внимание, мы потеряли "с"! Так как значения были одинаковы, # то когда они стали ключами, только последнее значение сохранилось.
Словарь из списка:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] dict_a = {x: x**2 for x in list_a} print(dict_a) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, -2: 4, -1: 1, 5: 25}
Важно! Такой синтаксис создания словаря работает только в фигурных скобках, выражение-генератор так создать нельзя, для этого используется немного другой синтаксис (благодарю longclaps за подсказку в комментариях):
# dict_gen = (x: x**2 for x in list_a) # SyntaxError: invalid syntax dict_gen = ((x, x ** 2) for x in list_a) # Корректный вариант генератора-выражения для словаря # dict_a = dict(x: x**2 for x in list_a) # SyntaxError: invalid syntax dict_a = dict((x, x ** 2) for x in list_a) # Корректный вариант синтаксиса от @longclaps
5.3 Генерация строк
Для создания строки вместо синтаксиса выражений-генераторов используется метод строки .join(), которому в качестве аргументов можно передать выражение генератор.
Обратите внимание: элементы коллекции для объединения в строку должны быть строками!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
# используем генератор прямо в .join() одновременно приводя элементы к строковому типу
my_str = ''.join(str(x) for x in list_a)
print(my_str) # -2-1012345
6. Периодичность и частичный перебор
6.1 Работа с enumerate()
Иногда в условиях задачи в условии-фильтре нужна не проверка значения текущего элемента, а проверка на определенную периодичность, то есть, например, нужно брать каждый третий элемент.
Для подобных задач можно использовать функцию enumerate(), задающую счетчик при обходе итератора в цикле:
for i, x in enumerate(iterable)
здесь x — текущий элемент i — его порядковый номер, начиная с нуляПроиллюстрируем работу с индексами:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_d = [(i, x) for i, x in enumerate(list_a)]
print(list_d) # [(0, -2), (1, -1), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4), (7, 5)]
Теперь попробуем решить реальную задачу — выберем в генераторе списка каждый третий элемент из исходного списка:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_e = [x for i, x in enumerate(list_a, 1) if i % 3 == 0]
print(list_e) # [0, 3]
Важные особенности работы функции enumerate():
- Возможны два варианта вызова функции enumerate():
- enumerate(iterator) без второго параметра считает с 0.
- enumerate(iterator, start) — начинает считать с значения start. Удобно, например, если нам надо считать с 1, а не 0.
- enumerate() возвращает кортеж из порядкового номера и значения текущего элемента итератора. Кортеж в выражении-генераторе результате можно получить двумя способами:
- (i, j) for i, j in enumerate(iterator) — скобки в первой паре нужны!
- pair for pair in enumerate(mylist) — мы работаем сразу с парой
- Индексы считаются для всех обработанных элементов, без учета прошли они в дальнейшем условие или нет!
first_ten_even = [(i, x) for i, x in enumerate(range(10)) if x % 2 == 0] print(first_ten_even) # [(0, 0), (2, 2), (4, 4), (6, 6), (8, 8)]
- Функция enumerate() не обращается к каким-то внутренним атрибутам коллекции, а просто реализует счетчик обработанных элементов, поэтому ничего не мешает ее использовать для неупорядоченных коллекций не имеющих индексации.
- Если мы ограничиваем количество элементов включенных в результат по enumerate() счетчику (например if i < 10), то итератор будет все равно обработан целиком, что в случае огромной коллекции будет очень ресурс-затратно. Решение этой проблемы рассматривается ниже в под-разделе «Перебор части итерируемого».
6.2 Перебор части итерируемого.
Иногда бывает задача из очень большой коллекции или даже бесконечного генератора получить выборку первых нескольких элементов, удовлетворяющих условию.
Если мы используем обычное генераторное выражение с условием ограничением по enumerate() индексу или срез полученной результирующей коллекции, то нам в любом случае придется пройти всю огромную коллекцию и потратить на это уйму компьютерных ресурсов.
Выходом может быть использование функции islice() из пакета itertools.
import itertools
first_ten = (itertools.islice((x for x in range(1000000000) if x % 2 == 0), 10))
print(list(first_ten)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Для сомневающихся: проверяем время выполнения
import time
import itertools
# На генераторе с малым количеством элементов
start_time = time.time()
first_ten = (itertools.islice((x for x in range(100) if x % 2 == 0), 10))
print(list(first_ten)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
elapsed_time = time.time() - start_time
print(elapsed_time) # 3.409385681152344e-05
# На генераторе с огромным количеством элементов
start_time = time.time()
first_ten = (itertools.islice((x for x in range(100000000) if x % 2 == 0), 10))
print(list(first_ten)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
elapsed_time = time.time() - start_time
print(elapsed_time) # 1.1205673217773438e-05
# То есть максимальное количество элементов в генераторе range() мы увеличили на 6 порядков,
# а время исполнения осталось того же порядка
7. Вложенные циклы и генераторы
Рассмотрим более комплексные варианты, когда у нас циклы или сами выражения-генераторы являются вложенными. Тут возможны несколько вариантов, со своими особенностями и сферой применения, чтобы не возникало путаницы, рассмотрим их по-отдельности, а после приведем общую схему.
7.1 Вложенные циклы
В результате генерации получаем одномерную структуру.
Важно! При работае с вложенными циклами внутри генератора выражений порядок следования инструкций for in будет такой же (слева-направо), как и в аналогичном решении без генератора, только на циклах (сверху-вниз)! Тоже справедливо и при более глубоких уровнях вложенности.
7.1.1 Вложенные циклы for где циклы идут по независимым итераторам
Общий синтаксис: [expression for x in iter1 for y in iter2]
Применение: генерируем одномерную структуру, используя данные из двух итераторов.
Например, создадим словарь, используя кортежи координат как ключи, заполнив для начала его значения нулями.
rows = 1, 2, 3
cols = 'a', 'b'
my_dict = {(col, row): 0 for row in rows for col in cols}
print(my_dict) # {('a', 1): 0, ('b', 2): 0, ('b', 3): 0, ('b', 1): 0, ('a', 3): 0, ('a', 2): 0}
Дальше можем задавать новые значения или получать их
my_dict['b', 2] = 10 # задаем значение по координатному ключу-кортежу
print(my_dict['b', 2]) # 10 - получаем значение по координатному ключу-кортежу
Тоже можно сделать и с дополнительными условиями-фильтрами в каждом цикле:
rows = 1, 2, 3, -4, -5
cols = 'a', 'b', 'abc'
# Для наглядности разнесем на несколько строк
my_dict = {
(col, row): 0 # каждый элемент состоит из ключа-кортежа и нулевого знаечния
for row in rows if row > 0 # Только положительные значения
for col in cols if len(col) == 1 # Только односимвольные
}
print(my_dict) # {('a', 1): 0, ('b', 2): 0, ('b', 3): 0, ('b', 1): 0, ('a', 3): 0, ('a', 2): 0}
Эта же задача решенная с помощью цикла
rows = 1, 2, 3, -4, -5
cols = 'a', 'b', 'abc'
my_dict = {}
for row in rows:
if row > 0:
for col in cols:
if len(col) == 1:
my_dict[col, row] = 0
print(my_dict) # {('a', 1): 0, ('b', 2): 0, ('b', 3): 0, ('b', 1): 0, ('a', 3): 0, ('a', 2): 0}
7.1.2 Вложенные циклы for где внутренний цикл идет по результату внешнего цикла
Общий синтаксис: [expression for x in iterator for y in x].
Применение: Стандартный подход, когда нам надо обходить двумерную структуру данных, превращая ее в «плоскую» одномерную. В данном случае, мы во внешнем цикле проходим по строкам, а во внутреннем по элементам каждой строки нашей двумерной структуры.
Допустим у нас есть двумерная матрица — список списков. И мы желаем преобразовать ее в плоский одномерный список.
matrix = [[0, 1, 2, 3],
[10, 11, 12, 13],
[20, 21, 22, 23]]
# Решение с помощью генератора списка:
flattened = [n for row in matrix for n in row]
print(flattened) # [0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23]
Таже задача, решенная с помощью вложенных циклов
flattened = []
for row in matrix:
for n in row:
flattened.append(n)
print(flattened)
UPD:Изящные решения из комментариев
import itertools
flattened = list(itertools.chain.from_iterable(matrix)) # от @iMrDron
# Данный подходнамного быстрее генератора списков
# и рекомендован к использованию для подобных задач.
flattened = sum(a, []) # от @YuriM1983
# sum(a, []) имеет квадратическую сложность(O(n^2))
# и потому совсем не рекомендуется к использованию для таких целей
7.2 Вложенные генераторы
Вложенными могут быть не только циклы for внутри выражения-генератора, но и сами генераторы.
Такой подход применяется когда нам надо строить двумерную структуру.
Важно!: В отличии от примеров выше с вложенными циклами, для вложенных генераторов, вначале обрабатывается внешний генератор, потом внутренний, то есть порядок идет справа-налево.
Ниже рассмотрим два варианта подобного использования.
7.2.1 — Вложенный генератор внутри генератора — двумерная из двух одномерных
Общий синтаксис: [[expression for y in iter2] for x in iter1]
Применение: генерируем двумерную структуру, используя данные из двух одномерных итераторов.
Для примера создадим матрицу из 5 столбцов и 3 строк и заполним ее нулями:
w, h = 5, 3 # зададим ширину и высотку матрицы
matrix = [[0 for x in range(w)] for y in range(h)]
print(matrix) # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
Создание этой же матрицы двумя вложенными циклами — обратите внимание на порядок вложения
matrix = []
for y in range(h):
new_row = []
for x in range(w):
new_row.append(0)
matrix.append(new_row)
print(matrix) # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
Примечание: После создания можем работать с матрицей как с обычным двумерным массивом
# теперь можно добавлять значения по координатам (координаты - индексы в списке списков)
matrix[0][0] = 1
matrix[1][3] = 3
print(matrix) # [[1, 0, 0, 0, 0], [0, 0, 0, 3, 0], [0, 0, 0, 0, 0]]
# Получаем значение по произвольным координатам
x, y = 1, 3
print(matrix[x][y]) # 3
7.2.2 — Вложенный генератор внутри генератора — двумерная из двумерной
Общий синтаксис: [[expression for y in x] for x in iterator]
Применение: Обходим двумерную структуру данных, сохраняя результат в другую двумерную структуру.
Возьмем матрицу:
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
Возведем каждый элемент матрицы в квадрат:
squared = [[cell**2 for cell in row] for row in matrix]
print(squared) # [[1, 4, 9, 16], [25, 36, 49, 64], [81, 100, 121, 144]]
Эта же операция в виде вложенных циклов
squared = []
for row in matrix:
new_row = []
for cell in row:
new_row.append(cell**2)
squared.append(new_row)
print(squared) # [[1, 4, 9, 16], [25, 36, 49, 64], [81, 100, 121, 144]]
Обобщим все вышеперечисленные варианты в одной схеме (полный размер по клику):
7.3 — Генератор итерирующийся по генератору
Так как любой генератор может использоваться как итератор в цикле for, это так же можно использовать и для создания генератора по генератору.
При этом синтаксически это может записываться в два выражения или объединяться во вложенный генератор.
Проиллюстрирую и такую возможность.
Допустим у нас есть два таких генератора списков:
list_a = [x for x in range(-2, 4)] # Так сделано для дальнейшего примера синтаксиса,
# конечно в подобной задаче досточно только range(-2, 4)
list_b = [x**2 for x in list_a]
Тоже самое можно записать и в одно выражение, подставив вместо list_a его генератор списка:
list_c = [x**2 for x in [x for x in range(-2, 4)]]
print(list_c) # [4, 1, 0, 1, 4, 9]
UPD от longclaps: Преимущество от комбинирования генераторов на примере сложной функции f(x) = u(v(x))
list_c = [t + t ** 2 for t in (x ** 3 + x ** 4 for x in range(-2, 4))]
8. Использование range()
Говоря о способах генерации коллекций, нельзя обойти вниманием простую и очень удобную функцию range(), которая предназначена для создания арифметических последовательностей.
Особенности функции range():
- Наиболее часто функция range() применяется для запуска цикла for нужное количество раз. Например, смотрите генерацию матрицы в примерах выше.
- В Python 3 range() возвращает генератор, который при каждом к нему обращении выдает очередной элемент.
- Исполльзуемые параметры аналогичны таковым в срезах (кроме первого примера с одним параметром):
- range(stop) — в данном случае с 0 до stop-1;
- range(start, stop) — Аналогично примеру выше, но можно задать начало отличное от нуля, можно и отрицательное;
- range(start, stop, step) — Добавляем параметр шага, который может быть отрицательным, тогда перебор в обратном порядке.
- В Python 2 были 2 функции:
- range(…) которая аналогична выражению list(range(…)) в Python 3 — то есть она выдавала не итератор, а сразу готовый список. То есть все проблемы возможной нехватки памяти, описанные в разделе 4 актуальны, и использовать ее в Python 2 надо очень аккуратно!
- xrange(…) — которая работала аналогично range(…) в Python 3 и из 3 версии была исключена.
Примеры использования:
print(list(range(5))) # [0, 1, 2, 3, 4]
print(list(range(-2, 5))) # [-2, -1, 0, 1, 2, 3, 4]
print(list(range(5, -2, -2))) # [5, 3, 1, -1]
9. Приложение 1. Дополнительные примеры
9.1 Последовательный проход по нескольким спискам
import itertools
l1 = [1,2,3]
l2 = [10,20,30]
result = [l*2 for l in itertools.chain(l1, l2)]
print(result) # [2, 4, 6, 20, 40, 60]
9.2 Транспозиция матрицы
(Преобразование матрицы, когда строки меняются местами со столбцами).Возьмем матрицу.
matrix = [[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]
Сделаем ее транспозицию с помощью генератора выражений:
transposed = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Эта же транспозиция матрицы в виде цикла
transposed = []
for i in range(len(matrix[0])):
new_row = []
for row in matrix:
new_row.append(row[i])
transposed.append(new_row)
print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
И немного черной магии от @longclaps
transposed = list(map(list, zip(*matrix)))
print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
9.3 Задача выбора только рабочих дней
# Формируем список дней от 1 до 31 с которым будем работать
days = [d for d in range(1, 32)]
# Делим список дней на недели
weeks = [days[i:i+7] for i in range(0, len(days), 7)]
print(weeks) # [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 31]]
# Выбираем в каждой неделе только первые 5 рабочих дней, отбрасывая остальные
work_weeks = [week[0:5] for week in weeks]
print(work_weeks) # [[1, 2, 3, 4, 5], [8, 9, 10, 11, 12], [15, 16, 17, 18, 19], [22, 23, 24, 25, 26], [29, 30, 31]]
# Если нужно одним списком дней - можно объединить
wdays = [item for sublist in work_weeks for item in sublist]
print(wdays) # [1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31]
Можно убрать выходные еще более изящно, используя только индексы
# Формируем список дней от 1 до 31 с которым будем работать
days = [d for d in range(1, 32)]
wdays6 = [wd for (i, wd) in enumerate(days, 1) if i % 7 != 0] # Удаляем каждый 7-й день
# Удаляем каждый 6 день в оставшихся после первого удаления:
wdays5 = [wd for (i, wd) in enumerate(wdays6, 1) if i % 6 != 0]
print(wdays5)
# [1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31]
# Обратите внимание, что просто объединить два условия в одном if не получится,
# как минимум потому, что 12-й день делится на 6, но не выпадает на последний 2 дня недели!
# Шикарное короткое решение от @sophist:
days = [d + 1 for d in range(31) if d % 7 < 5]
10. Приложение 2. Ссылки по теме
- Хорошая англоязычная статья с детальным объяснением что такое генераторы и итераторыИллюстрация из статьи:
- Если у Вас есть сложности с пониманием логики работы с генераторными выражениями, посмотрите интересную англоязычную статью, где проводятся аналогии между генераторными выражениями и работой с SQL и таблицами Excel.Например так:
squared_evens = [n ** 2 # SELECT for n in numbers # FROM if n % 2 == 0] # WHERE
- UPD от fireSparrow: Существуюет расширение Python — PythonQL, позволяющее работать с базами данных в стиле генераторов коллекций.
- Иллюстрированная статья на английском, довольно наглядно показывает синтаксис генераторных выражений.
- Если требуются дополнительные примеры по теме вложенных генераторных выражений (статья на английском).
Приглашаю к обсуждению:
- Если я где-то допустил неточность или не учёл что-то важное — пишите в комментариях, важные комментарии будут позже добавлены в статью с указанием вашего авторства.
- Если какие-то моменты не понятны и требуется уточнение — пишите ваши вопросы в комментариях — или я или другие читатели дадут ответ, а дельные вопросы с ответами будут позже добавлены в статью.
«Как работает генератор переменного тока?» – Яндекс.Кью
Этот вопрос, как капуста, его раскрываешь-раскрываешь, а до «фундаментальной» кочерыжки всё ещё далеко. Хоть вопрос, видимо, касается этой самой кочерыжки, придётся всё же попробовать одолеть всю капусту.
На самый поверхностный взгляд природа тока кажется простой: ток — это когда заряженные частицы движутся. (Если частица не движется, то тока нет, есть только электрическое поле.) Пытаясь постичь природу тока, и не зная из чего состоит ток, выбрали для тока направление, соответствующее направлению движения положительных частиц. Позже оказалось, что неотличимый, точно такой же по действию ток получается при движении отрицательных частиц в противоположном направлении. Эта симметрия является примечательной деталью природы тока.
В зависимости от того, где движутся частицы природа тока тоже различна. Отличается сам текущий материал:
- В металлах есть свободные электроны;
- В металлических и керамических сверхпроводниках — тоже электроны;
- В жидкостях — ионы, которые образуются при протекании химических реакций или при воздействии приложенного электрического поля;
- В газах — снова ионы, а также электроны;
- А вот в полупроводниках электроны несвободны и могут двигаться «эстафетно». Т.е. двигаться может не электрон, а как бы место, где его нет — «дырка». Такая проводимость называется дырочной. На спайках разных полупроводников природа такого тока рождает эффекты, делающие возможной всю нашу радиоэлектронику.
У тока две меры: сила тока и плотность тока. Между током зарядов и током, например, воды в шланге больше различий, чем сходства. Но такой взгляд на ток вполне продуктивен, для понимания природы последнего. Ток в проводнике это векторное поле скоростей частиц (если это частицы с одинаковым зарядом). Но мы обычно для описания тока не учитываем эти детали. Мы усредняем этот ток.
Если мы возьмём одну только частицу (естественно заряженную и движущуюся), то ток равный произведению заряда и мгновенной скорости в конкретный момент времени существует ровно там, где находится эта частица. Помните, как было в песне дуэта Иваси «Пора по пиву»: «…если климат тяжёл и враждебен астрал, если поезд ушёл и все рельсы ЗА-БРАЛ…» 🙂
И вот мы пришли к той кочерыжке, которую упоминали вначале. Почему частица имеет заряд (с движением вроде всё ясно, а что же такое заряд)? Наиболее фундаментальные частицы (вот теперь уж точно 🙂 вроде бы неделимые) несущие заряд — это электроны, позитроны (антиэлектроны) и кварки. Отдельно взятый кварк вытащить и исследовать невозможно из-за конфайнмента, с электроном вроде проще, но тоже пока не очень-то ясно. На данный момент видно, что ток квантуется: не наблюдается зарядов меньше заряда электрона (кварки наблюдаются только в виде адронов с совокупным зарядом таким же или нулевым). Электрическое поле отдельно от заряженной частицы может существовать только в связке с магнитным полем, как электромагнитная волна, квантом которой является фотон. Возможно, какие-то интерпретации природы электрического заряда лежат в сфере квантовой физики. Например, предсказанное ею и обнаруженное сравнительно недавно поле Хиггса (есть бозон — есть и поле) объясняет массу ряда частиц, а масса — это мера того, как частица откликается на гравитационное поле. Может быть и с зарядом, как с мерой отклика на электрическое поле, обнаружится какая-то похожая история. Почему есть масса и почему есть заряд — это в чём-то родственные вопросы.
Многое известно о природе электрического тока, но самое главное пока нет.
Генератор | Дизайн Человека — Your Human Design
Энергия Генераторов практически безгранична. По большому счету, Генератор может даже обойтись без сна, по крайней мере, ночь, проведенная Генератором за любимой деятельностью, не сильно отразится на его утреннем самочувствии. Каждое утро Генератор получает в свое распоряжение запас жизненных сил, позволяющих ему действовать. Иметь постоянный доступ к жизненной силе и энергии настолько очевидно для Генератора, что большинство из представителей этого энергетического типа даже не понимают, с каким чудом они имеют дело, какой дар у них есть. Не понимая этого, Генераторы неправильно расходуют свою энергию и силу, занимаются нелюбимым делом, растрачивают себя не в тех отношениях, проводят свое время не с теми людьми и т. д. Именно Генераторы отвечают за тот беспорядок, царящий сейчас на планете — они создают его тем, что используют свою энергию неправильно.
Генераторы делятся на обычных и манифестирующих. И тот, и другой должны ожидать, однако между ними есть разница. Манифестирующие Генераторы могут бросаться в бой и действовать сразу после своего ответа, тогда как Чистые Генераторы проходят череду остановок, будто спотыкаются по дороге, застревает. Застревание — одна из первичных функций сакрального центра, которая определяет бытие Генератора. Он застревает и вибрирует на определенном уровне и потому зачастую бросает начатое. Классические Генераторы являются величайшими «бросателями» в мире, из-за этого очень часто недооценивают себя, в то время, как Манифестирующие Генераторы не имеют подобных проблем.
Тема ложного «я»: инициирование
Всех Генераторов с детства воспитывают как Манифесторов. Типичное «манифесторское» убеждение в том, что если хочешь получить что-то, тебе нужно самому этого добиться свойственно большинству западных культур. Так Генератор учится инициировать. Его учат самому начинать отношения с кем-то, самостоятельно находить работу, знакомиться на улице с красивым человеком противоположного пола, ставить себе какие-то цели. При этом, инициируя что-то, Генератор рано или поздно встречает сопротивление ситуации, других людей или обстоятельств и по этому поводу испытывает огромное неудовлетворение и раздражение. Дружба оказывается не такой крепкой, работа наполненной огромным количеством неприятных моментов, знакомство оборачивается не самым удачным браком с не самым подходящим партнером или вообще разводом, а цели заходят в тупик. Как следствие, Генератор часто бросает начатое и переключается на что-то другое. Огромный след начатых, но незаконченных дел, проектов, отношений, людей — это то, что оставляют по жизни все Генераторы. А в сухом остатке не остается ничего, кроме раздражения и неудовольствия.
Раздражение вызывается тем, что Генератор неправильно использует свою энергию, неудовольствие — тем, что Генератор проживает не свою жизнь. Один из главнейших врагов Генератора — ум. Именно ум подсказывает, почему нужно держаться за ту или иную работу, почему нужно просыпаться именно с этим человеком, почему следует принять такие то правила игры, почему нужно быть целеустремленным и делать все самому. У умного, образованного, рационального, критично настроенного генератора практически нет шансов встретиться с Дизайном Человека — он пройдет мимо, убежденный, что это очередная типология вроде соционики. Большинство Генераторов буквально потеряны в своем уме.
В этом контексте особенно интересны наблюдения Генераторов, пробующих проживать Свой Дизайн и следующих своей стратегии и внутреннему авторитету. Проходит полгода-год, и они отмечают, насколько спокойнее стала их жизнь, насколько богаче и разнообразнее стали их ощущения и переживания, сколько, если угодно, магии, случайных и благоприятных совпадений, удачных синхронизаций появилось в их жизни. Аура Генератора впитывает и притягивает к себе все, что нужно Генератору — нужных людей, нужные обстоятельства, нужные ситуации. Генератор всегда получит то, что он хочет, если перестанет стремиться быть Манифестором и инициировать какие-либо события.
Безусловно, самое сложное для Генератора — ждать. «Ждать?! Зачем?! У меня же куча сил и энергии!», — скажет любой Генератор. В свою очередь, Манифестирующие Генераторы не просто скажут, но и будут действовать, ничего не спрашивая. Для них жить — это быть занятым чем-то, а когда им нечем заняться, они что-то придумывают и изобретают, лишь бы не останавливать свою зачастую бурную, но бесцельную активность. Очень сложно, имея в запасе практически безграничный запас сил и энергии, не начинать какое-то дело или разговор, не создавать бизнес, не вступать в отношения первым, без отклика. Особенно это сложно для Манифестирующих Генераторов: терпение — это урок, который им предстоит пройти в жизни. Любому Генератору нужно понимать, что каждый раз, инициируя что-то, он теряет всю свою мощь.
Стратегия Генератора: откликаться
Стратегия Генератора, позволяющая ему достичь радости и удовлетворения в жизни — откликаться, а не инициировать. Ждать возможностей, которые жизнь сама, совершенно естественным способом предоставит им. Нет универсального обозначения тому, что является откликом. Если совсем просто, то отклик — это реакция сакрального центра на какое-то действие или событие, представляющее для него интерес. При этом отклик может быть на что-то поступившее извне: если Генератор решит, что у него есть отличная идея и на эту идею у него есть отклик, это всего-навсего игры ума.
Следуя за откликом, Генератор рано или поздно выйдет на ту деятельность, которая позволит ему получить удовлетворение, испытать радость во всех ее проявлениях и ответить на вопрос «Кто я?». По большому счету, каждый положительный отклик это слова сакрального центра (внутреннего голоса, если хотите): «Да, я могу с этим справиться» — положительный отклик, «Нет, у меня нет на это энергии» — отрицательный. Ни один другой тип не имеет возможности познать себя: Манифесторы обеспокоены лишь своим влиянием на других, Проекторы пытаются понять, почему другие люди такие идиоты, а Рефлекторы мечтают только о том, чтобы остаться наедине с самим собой. Познать себя через деятельность, которой они занимаются — привилегия Генераторов.
Как можно услышать сакральный центр и отклик? Отклик следует на вопрос или предложение Генератору и сопровождается горловыми звуками «ага», «угу», «а-а», «э-а» и т. д., которые так знакомы всем детям и которые во взрослой речи заменены на артикуляционные «да» и «нет». Каждый Генератор методом проб и ошибок может узнать, какие сигналы тела, мысли, внутреннее ощущения сопровождают его истинное «ага» и «угу», где настоящие «да» и «нет», чему внутри себя можно доверять, а чему не стоит. Хороший способ учиться — анализировать свои поступки и действия. Попав туда, где не комфортно находиться, Генератор может попробовать вспомнить цепочку своих шагов, поступков, решений и найти ту точку, где он предал себя и свой сакральный центр, и извлечь необходимый урок. С каждым месяцем проживания Своего Дизайна таких уроков будет все меньше.
Действия не из отклика — это всегда предательство Генератора по отношению к себе. Это шаг в сторону со своего пути на путь других людей. Это возврат в средневековье, где пожелания тирана-Манифестора выполнялись Генераторами беспрекословно. Добровольная сдача в рабство. Потому самое важное для Генератора — научиться слышать свой сакральный центр и практиковаться в этом искусстве. Это возможно с помощью другого Генератора или Проектора, уже знающего о Своем Дизайне и умеющего распознавать и отличать отклик от желаний и посылок ума, либо аналитика Дизайна Человека. При этом последние нередко шутят, что прочтение карты Генератора можно завершить через пять минут, сразу после того, как тот узнал о своей стратегии и авторитете. Обо всем остальном он сможет узнать сам, просто следуя откликам.
Ребенок-Генератор
Генератор — самый-самый обусловленный из всех типов. Мы не уважаем эти сакральные звуки, стремимся укрыться от них, закрывая двери спальни и ванной комнаты. Родителей подрастающих Генераторов часто смущают все эти разнообразные звуки, которые дети издают во время еды или когда сердятся. Они начинают указывать своим детям, что так нехорошо себя вести, что это невежливо, учат тому, что подобные вещи должны проявляться только дома, когда вокруг никого нет. Единственным критерием возможности проявлять себя остается артикуляция. Но правда тех существ, которых мы называем Генераторами, кроется в их звуковых откликах, и это нужно уважать.
Ребенок-Генератор нуждается в том, чтобы его спросили, а все родители хотят, чтобы он обучался идти и получать то, что хочет. Родители не спрашивают свое дитя, а говорят ему: «Убери свою комнату. Сделай уроки». Если ребенка-Генератора не спрашивают, то он не знает, что ему надо. Но его никто не спрашивает, и поэтому он пытается делать вещи самостоятельно, в результате чего расстраивается. Родители, не знающие о типе своего ребенка, никогда не спросят: «Ты пойдешь убирать свою комнату? Ты хочешь сделать это? «. Понимая его природу, на ответ «Э-а!» вы можете возразить: «Да, но ведь это должно быть сделано. Посмотри сам».
Генератор в отношениях
Для Генератора нет никакой другой правды, кроме той, которую он может услышать в своем отклике. Генераторы никогда не могут подойти к кому-то и сказать, что они хотят быть с ним. Они не могут знать, какую пищу принимать, что одевать, куда идти, кого любить и где работать, пока не распознают эти вещи через свой собственный внутренний голос. Ясность для Генератора приходит всегда только во время ответа на вопрос, причем вопрос может прийти любым способом, не обязательно прямо.
Генераторы страдают от расстройства, и никто так сильно не расстраивается в сексе, как они. Классический Генератор, который решает умом, что хочет быть с кем-то, в итоге глубокое разочаровывается по поводу таких отношений, поскольку ничего в них не работает. Первая вещь, которую надо понять Генератору, это то, что он не может вступать во взаимоотношения, пока его об этом не спросили.
Эмоциональному Генератору необходимо «потерзать» своих воздыхателей, поскольку это его должны добиваться. Воздыхатели хотят получить доступ к его генерирующей силе и удовольствию, хотят, чтобы Генератор ответил немедленно, а он говорит: «Я должен подумать об этом». Такая «пытка» создает, на самом деле, в хорошем смысле здоровое напряжение. И когда Генератор пройдет через свою эмоциональную волну, и станет ясно, что он готов ответить, то влюбленный в него человек, позвонив в десятый раз по телефону с вопросом «Ты хочешь поужинать со мной?», услышит в ответ «Угу». Это означает, что эмоциональный Генератор готов войти во взаимоотношения со всей ясностью.
Роль генераторов в истории
В истории Генераторы были рабами и прислужниками Манифесторов, потому что у них нет возможности соревноваться со своими «хозяевами». 70% человечества были рабами, абсолютно не ведающими, каков их потенциал и расстроенными оттого, что они пытались подражать Манифесторам. Их новая роль — быть строителями. Эта новая ступень постепенно входит в жизнь и станет реальностью, когда Генераторы научатся не инициировать, а отвечать на запросы.
Если представить себе футбольную команду, то Генераторы будут в ней защитниками. Их сила — в их реакции на то, что приходит извне.
Известные Генераторы: Далай Лама, Альберт Эйнштейн, Карл Густав Юнг, Моцарт. Лючиано Паворотти, Дастин Хоффман, Грета Гарбо, Мадонна, Элвис Пресли, Уолт Дисней.
определение генератора по The Free Dictionary
Перри посмотрел на свой генератор; к огромным резервуарам, в которых хранились живительные химические вещества, с помощью которых он должен был производить свежий воздух, чтобы заменить тот, который мы потребляли при дыхании; к его приборам для регистрации температуры, скорости, расстояния и для исследования материалов, через которые нам предстояло пройти.
«Я не мог точно вычислить скорость, потому что у меня не было прибора для измерения могучей мощности моего генератора. Однако я решил, что мы должны преодолевать около пятисот ярдов в час.»
По моему предложению Перри остановил генератор, и когда мы остановились, я снова вложил все свои силы в невероятное усилие, чтобы сдвинуть его даже на волосок, — но результаты были такими же бесплодными, как и тогда, когда мы путешествовали по максимальная скорость.
Когда, наполовину задохнувшись, я поднял голову над водой, капюшон марсианина указывал на батареи, которые все еще стреляли через реку, и, когда он продвигался, он расшатался, что должно было быть генератором теплового луча.
Генераторы тепловых лучей взмахивали высоко, и шипящие лучи падали туда и сюда.
«Это довольно просто, это не что иное, как генератор радия, рассеивающий радиоактивность во всех направлениях на расстоянии около ста ярдов от летуна. Пока продолжается вечное поколение кругов, вечный генератор остается.Я сделал отчет об этих генераторах три года назад.
Под водой или в воздухе она была достаточно послушной в любую погоду, когда находилась под контролем; но без своих экранных генераторов она была почти беспомощна, так как не могла летать, и, если погружался, не мог подняться на поверхность.
Возможно, это ни в коем случае не было его ошибкой, поскольку в случае с Холодной водой я не мог справедливо приписать мне бесполезность генераторов гравитационного экрана; но я хорошо знал, что, если случится так, что сегодня нас перебросит через тридцать — так как мы легко могли бы оказаться перед ужасным западным ветром, который мы могли слышать под нами, ответственность ляжет на мои плечи.
На другой стороне проспекта проходила серия газовых генераторов, и большие шланги тянулись повсюду через промежуточное пространство.
«Форвартс!» Кто-то бежал перед ним с портфелем, и его быстро несли по широкой аллее между газогенераторами и дирижаблями, быстро и в целом плавно, за исключением того, что его носильщики пару раз спотыкались о шланги и чуть не подводили его.
,Определение для изучающих английский язык из Словаря учащихся Merriam-Webster
генератор / ʤɛnəˌreɪtɚ / существительноемножественное число генераторы
/ ʤɛnəˌreɪtɚ /
существительное
множественное число генераторы
Определение ГЕНЕРАТОРА учащимися
[Число]
: то, что что-то производит особенно : машина, производящая электричество ,Определение генератора| Словарь английских определений
генератор
n
a любое устройство для преобразования механической энергии в электрическую с помощью электромагнитной индукции, особенно. большой как на электростанции
b Устройство для создания напряжения электростатическим способом
c Любое устройство, преобразующее одну форму энергии в другую, образует
акустический генератор
2 Аппарат для получения газа
электростатический генератор
n любое устройство для производства высокого напряжения путем накопления заряда статического электричества
мотор-генератор
n генератор, приводимый в действие электродвигателем, с помощью которого можно изменять напряжение, частоту или фазы источника питания
генератор шума
n устройство, используемое в синтезаторах для создания высокочастотных звуковых эффектов
генератор программ
n компьютерная программа, которая может использоваться для создания других компьютерных программ
генератор сигналов
n (Электротехника) устройство, используемое для генерации сигнала, состоящего из известного колебательного напряжения, обычно от 1 микровольта до 1 вольт, в диапазоне частот, для проверки электронного оборудования
Генератор Ван де Граафа
n Устройство для создания высоких электростатических потенциалов (до 15 миллионов вольт), состоящее из полой металлической сферы, на которой накапливается заряд от непрерывно движущейся ленты из изоляционного материала: используется в виде частиц ускорители
(С20: им.Р.Дж. Ван де Грааф (1901-67), физик из США)
— Викисловарь
английский [править]
Этимология [править]
От латинского, от причастия прошедшего времени genero («родить, отец»)
Существительное [править]
генератор ( множественное число генераторы )
- Тот, кто или то, что порождает, порождает, вызывает или производит.
- (химия) Аппарат, в котором пар или газ образуется из жидкости или твердого тела с помощью тепла или химического процесса, например паровой котел, газовая реторта и т. Д.
- (музыка) Основной звук или звуки, производимые другими; основная нота или основной тон общего аккорда; — см. также генерирующий тон.
- (математика) Элемент группы, который используется при представлении группы: один из элементов, из которого можно вывести другие с заданными отношениями.
- (геометрия) Одна из линий линейчатой поверхности; вообще, элемент некоторого семейства линейных пространств.
- (программирование) Подчиненный фрагмент кода, который с учетом некоторых начальных параметров генерирует несколько выходных значений по запросу.
- Часть аппарата, оборудования и т. Д. Для преобразования или преобразования энергии из одной формы в другую.
- В частности, машина, преобразующая механическую энергию в электрическую.
Антонимы [править]
Производные термины [править]
Переводы [править]
математика: элемент группы, который используется в представлении группы
Аппарат: электрогенератор
Глагол [править]
генератор
- во втором лице единственного числа будущего пассивного императива общего
- вид от третьего лица, единичный будущий пассивный императив , общий
Ссылки [править]
- генератор в Чарльтоне Т.Льюис и Чарльз Шорт (1879) Латинский словарь , Оксфорд: Clarendon Press Генератор
- в Чарльтоне Т. Льюисе (1891) Элементарный латинский словарь , Нью-Йорк: Harper & Brothers
Норвежский букмол [править]
Этимология [править]
От латинского род
Существительное [править]
генератор m ( определенное единственное число родовое , неопределенное множественное число порождающее , определенное множественное число порождающее )
- генератор
Производные термины [править]
Ссылки [править]
норвежский нюнорск [править]
Этимология [править]
От латинского род
Существительное [править]
генератор m ( определенное единственное число generatoren , неопределенное множественное число generatorar , определенное множественное число generatorane )
- генератор