def p(a):
r = []
for i, item in enumerate(a):
if item.startswith("AAXX"):
r.append(i)
for i in reversed(r):
a.insert(i-2,"HELLO")
return(a)
Вы можете обернуть это, как вы хотите иметь дело с входами / выходами. Вам нужно исправить случай, когда «AAXX» встречается в первых двух элементах, так как вы не определили, какое поведение вы там хотите. Ключевая проблема заключается в том, что изменение списка во время его итерации является плохой практикой, в частности, более поздние индексы могут быть отключены, поскольку вы вставили более ранние «ПРИВЕТ». Возможное решение состоит в том, чтобы отслеживать все индексы вставки, а затем делать вставки в обратном порядке , потому что вставка позже в список не влияет на более ранние индексы.
В течение прошлых двух лет мы постепенно переключались от "every-project-has-its-own-toolset" стратегии до решения Trac+SVN+SCons и довольно довольны этим.
Переключение на SCons было небольшим количеством работы, но действительно окупилось. У нас есть разнородная среда, главным образом C/C++ для различных встроенных платформ, модулей ядра, некоторых настольных приложений и различных модулей Python как код связующего звена. SCons действительно сияет, когда Вы хотите добавить поддержку своих собственных компиляторов и нишевых инструментов и должны адаптировать систему сборки к своим требованиям. Раньше, мы должны были использовать другой GUI почти для каждой встроенной платформы - теперь, когда SCons непосредственно вызывает компиляторы, которые немного улучшил цикл работы.
Наши разработчики или использовали Emacs или Vim, и никто не хотел переключиться на что-либо еще, таким образом, мы (к счастью), sticked с этим. Я не очень знаком с развертыванием, таким образом, я не могу говорить об этом.
Я ненавижу Знатока меньше, чем я ненавижу Муравья, и для Java, необходимо выбрать одно из того зла. Если Вы только начинаете, выбираете Maven, тем более, что Вы уже распознали, что Ваш "жизненный цикл сборки" охватывает 12 различных и сложных дисциплин! Вы оказываетесь перед необходимостью выбирать конвенции для всех них. Сохраните себя проблема и пойдите со Знатоком конвенций, уже установил.
Для непрерывной интеграции и общей автоматизации сборки, мне нравится Гудзон.
Если Вы работаете с.NET, трудно разбить Сервер Основы Команды для своей интеграции с Visual Studio. Это содержит средства разработки, управление версиями, отслеживание ошибки, управление конфигурацией, автоматизированное тестирование, поблочное тестирование, автоматизировало здание, управление артефактом и все остальное, что Вы описали.
Конечно, TFS является дорогим, часто неинтуитивным и пропускает некоторые функции по сравнению с другими инструментами, которые я использовал. Если у Вас есть лицензия MSDN, можно использовать TFS для Рабочих групп (до 5 пользователей IIRC) бесплатно, все же.
Мы - магазин MS с помощью VS2008. Мы используем Подверсию с Черепахой для SCC и управления версиями, и наш репозиторий размещается онлайн, таким образом, наша distibuted команда может использовать его. Для сборки мы используем Гудзон и CI, намного лучше, чем Nant или MSBuild. Отслеживанием ошибки является Bugzilla. Автоматизированное тестирование является NUnit
Инструменты для предотвращения включают Team Foundation Server и Sharepoint, слишком неуклюжий для использования реального мира.
BTW кто-либо знает хороший инструмент Scrum, который может произвести, сжигают диаграммы дотла, идеально связываясь в Basecamp?
Мы также используем много инструментов, но мы перемещаемся все больше в Сборки Зета и Ошибки. Нашей основной dev средой является Eclipse + Java, но мы также делаем Visual Studio (все они) и по крайней мере 5 различных сборок платформы Unix.
Вот полный список:
Я использую svn и tac на некотором oof мои проекты и svn и fogbugz на других. Они интегрируются очень хорошо.
Я все еще использую сценарии командной строки для сборок, поскольку они делают все, в чем я нуждаюсь - включая захват для ошибок и пользование электронной почтой результатов, но дни той установки сочтены. Я изучаю межплатформенные инструменты сборки.
Я использую Inno для выпусков win32. Никакие продукты поставки все же для другой платформы - не уверенный, как мы развернем их.
Мы не обращаемся к большому количеству других объектов, кроме которых Вы упоминаете на некоторой вспомогательной документации и в коде и обсуждаемом отслеживании.
Team Foundation Server и Visual Studio.
Я помню, когда моей идеей был отладчик Visual C Sun, и система управления версиями копировала все исходные файлы в новый именованный каталог и помещала его на сервер который должен был быть зарезервирован.
Только не