Ваша функция может быть выполнена для работы путем повторения по списку в обратном порядке:
def checkio(data):
for index in range(len(data) - 1, -1, -1):
if data.count(data[index]) == 1:
del data[index]
return data
print(checkio([3, 3, 5, 8, 1, 4, 5, 2, 4, 4, 3, 0]))
[3, 3, 5, 4, 5, 4, 4, 3]
print(checkio([1, 2, 3, 4]))
[]
Это работает, поскольку оно только удаляет числа в разделе списка, который уже был повторен.
Изменить 2018:
С момента моего ответа 2010-2012-2014 гг. В 2015 году Git для Windows использует msys2, как я подробно здесь .
Подробнее см. « Как msys, msys2 и msysgit связаны друг с другом? ».
Редактировать (еще 2 года спустя: октябрь 2014 г.)
Йоханнес Шинделин только что объяснил (октябрь 2014 г.), что msysgit постепенно прекращается :
Теперь у нас есть облегченный Git для Windows SDK , который по сути представляет собой стандартную систему MinGW / MSys, управляемую через диспетчер пакетов mingw-get.
Мы решили просто постепенно отказаться от имени «msysGit» (а также от организации GitHub с тем же именем ) и:
- работать над Git для Windows (с соответствующая организация GitHub) ,
- с использованием имени « Git for Windows » для установщика, предназначенного для «конечных пользователей» и
- с именем « Git for Windows SDK "для среды разработки, предназначенной для разработчиков Git для Windows).
Обновление 2 года спустя: июль 2012 г.
Msysgit никуда не денется, и если вам не понадобится - , добавить несколько сотен МБ для cygwin , вы действительно этого не сделаете. нужен Cygwin, чтобы просто использовать Git в Windows.
И если вы хотите получить доступ к GitHub, вы получите один пакет («Git для Windows» + ключи ssh, зарегистрированные для вас в вашей учетной записи GitHub + красивый графический интерфейс) с GitHub для Windows .
Оба Git и msysgit находятся на GitHub.
Страница msysgit.github.com ясно показывает разницу между:
<---------->
« Git для Windows »: Pure пользователи Git | « MsysGit »: для тестировщиков, разработчиков, специалистов по установке
См. Также FAQ по msysgit :
Что это за «MSys» в «MSysGit»?
MSys - это среда для Windows, предлагающая оболочку типа Unix и интерпретатор Perl. Поскольку многие части Git по-прежнему не являются встроенными командами, запрограммированными на C, а являются сценариями оболочки и Perl, Git для Windows нужна такая среда.
Поэтому мы поставляем Git для Windows с очень минимальной версией MSys.
MSys также требуется для сборки Git, поскольку мы повторно используем ту же установку Unix-типа, что и вышестоящий Git. Мы поставляем более полную среду MSys, включая GCC, в качестве среды сборки (поэтому она называется «msysGit»).
Мы компилируем Git как чистую программу MinGW , то есть программу без каких-либо зависимостей ссылок от чего-либо, кроме стандартных библиотек Windows.
Поэтому, если вам не нужно использовать какие-либо части Git, которые по-прежнему реализованы только как сценарии оболочки или Perl, вы можете уйти, запустив простой git.exe.
Исходный ответ: июнь 2010 г.
a / Вы можете изменять размер и копировать-вставить в Git bash, как и в любой другой оболочке Windows.
b / Вы, вероятно, используете «Git для Windows», а не msysgit. Из вики :
- msysGit - это среда разработки для компиляции Git для Windows . Он завершен в том смысле, что вам просто нужно установить msysGit, а затем вы можете собрать Git. Без установки стороннего ПО.
- Git для Windows - это установщик, который устанавливает Git - и только Git .
Легко увидеть разницу:
- установщики для Git имеют префикс Git-,
- установщики msysGit имеют префикс msysGit-.
Еще одним признаком является то, что установщики msysGit бывают двух видов: fullinstall и netinstall.
Кроме того, msysGit по умолчанию не устанавливается вC: \ Program Files
.
Но msysGit поставляется сgcc
, компилятором GNU C.
c / Из MSysGitHerald10 :
Помните:
- MinGW - это действительно очень тонкий слой времени компиляции над Microsoft Runtime; Таким образом, программы MinGW являются настоящими программами Windows, без концепции путей в стиле Unix или тонкостей POSIX, таких как вызов
fork ()
.- MSys, напротив, представляет собой упрощенную версию Cygwin (к тому же старая версия), единственная цель которой - предоставить достаточно уровня POSIX для запуска bash.
И это не всегда приветствуется :
При работе в Windows мне не нравится, что msysGit, как следует из названия, зависит от MSYS и инструментов из мира Unix.Я считаю, что все программы в дистрибутиве Git должны стать двоичными файлами, скомпилированными для конкретной платформы, а не полагаться на интерпретаторы оболочки или сторонние языки, такие как Tcl / Tk.
Тем не менее, он намного лучше, чем первые Git на Cygwin , установленные в 2007 году.
cygwin + git был единственным способом заставить git работать раньше. Теперь, когда есть msysgit, я не вижу смысла использовать cygwin.
Я согласен с тем, что git bash не так хорош ... так что я делаю
Реализация bash в msysgit устарела. Однако при редактировании я использую vim, и это отлично работает. Что касается вырезания и вставки, я часто прибегаю к SHIFT + ALT + [пробел], E, M или другим клавишам, чтобы пометить текст, который я хочу. Не идеально, но работает достаточно хорошо, так как я не резаю и не вставляю слишком много.
Теперь я начал запускать Ubuntu на той же машине через VirtualBox. Благодаря бесшовному режиму и общим папкам я могу воспользоваться обновленным bash и быстрым Git.
Я не использую никаких инструментов графического интерфейса для Git, кроме gitk (для gitk --all), чтобы визуализировать историю, если мне это нужно.
Я пробовал cygwin, и он мне не понравился. Решение виртуальной коробки намного лучше, если вам недостаточно msysgit.