У Python есть языковая функция, называемая List Consrehensions , которая идеально подходит для упрощения такого рода вещей. Следующий оператор делает именно то, что вы хотите, и сохраняет результат в l3
:
l3 = [x for x in l1 if x not in l2]
l3
будет содержать [1, 6]
.
Надеюсь, что это поможет!
"В Python Вы обычно используете PEP 8 - Руководство по стилю для Кода Python как Ваши стандарты/инструкции кодирования? Там кто-либо другой - формализованные стандарты, которые Вы предпочитаете?"
, Как упомянуто Вами следуют PEP 8 для основного текста, и PEP 257 для docstring соглашений
Наряду с Руководствами по стилю Python, я предлагаю, чтобы Вы отослали следующее:
Я следую Идиомы Python и Эффективность инструкции Rob Knight. Я думаю, что они - точно то же как PEP 8, но являются большим количеством синтетического продукта и на основе примеров.
при использовании wxPython Вы могли бы также хотеть проверить Руководство по стилю на код wxPython , Chris Barker, также.
PEP 8 хорош, единственная вещь, что мне жаль, что это не снизилось тяжелее на, была священная война Вкладок по сравнению с пробелами.
В основном при запуске проекта в Python необходимо выбрать Tabs или Spaces и затем стрелять во всех преступников на виде.
Добавить к bhadra's список из идиоматических руководств:
представление Checkout Anthony Baxter Эффективное Программирование Python (с 2005 OSON).
выборка:
# dict's setdefault method turns this:
if key in dictobj:
dictobj[key].append(val)
else:
dictobj[key] = [val]
# into this:
dictobj.setdefault(key,[]).append(val)
Я следую за ним чрезвычайно строго. Единственный бог перед PEP-8 является существующими кодовыми базами.
Да, я пытаюсь следовать за ним максимально тесно.
я не следую никаким другим стандартам кодирования.
Я придерживаюсь PEP-8 очень тесно.
Существует три определенных вещи, которые я не могу быть побеспокоен для изменения на PEP-8.
Избегайте постороннего пробела сразу в круглых скобках, скобках или фигурных скобках.
Предложенный: spam(ham[1], {eggs: 2})
Я делаю это так или иначе: spam( ham[ 1 ], { eggs: 2 } )
Почему? 30 + годы укоренившейся привычки прижимается () против имен функций или (в C) ключевые слова операторов. Запуск с Фортрана IV в 70-х.
Использование располагает с интервалами вокруг арифметических операторов:
Предложенный: x = x * 2 - 1
Я делаю это так или иначе: x= x * 2 - 1
Почему? Gries Наука о Программировании, предложенном это как способ подчеркнуть соединение между присвоением и переменной, кто состояние, изменяется.
Это не работает хорошо на несколько присвоение или увеличенное присвоение, на это я использую много пробелов.
Для имен функций, имен методов и имен переменной экземпляра
Предложенный: нижний регистр, со словами, разделенными символами нижнего подчеркивания по мере необходимости для улучшения удобочитаемости.
Я делаю это так или иначе: Camel-регистр
Почему? 20 + годы укоренившейся привычки к Camel-регистру, начиная с Паскаля в 80-х.