Tag: python 3.x

Удаление дубликатов с использованием пользовательских сравнений

Самый удобный, «путинский» способ удаления дубликатов из списка в основном: mylist = list(set(mylist)) Но предположим, что ваши критерии подсчета дубликатов зависят от определенного поля члена объектов, содержащихся в mylist . Ну, одно решение – просто определить __eq__ и __hash__ для объектов в mylist , а затем классический list(set(mylist)) будет работать. Но иногда у вас есть […]

Распечатайте список элементов, разделенных пробелами, в Python 3

У меня есть список L элементов, например натуральных чисел. Я хочу напечатать их в одной строке с одним пространством в качестве разделителя. Но я не хочу пробела после последнего элемента списка (или до первого). В Python 2 это легко сделать с помощью следующего кода. Выполнение заявления print (таинственным образом, я должен признаться) избегает печатать дополнительное […]

Python 3 встроенных типов __init__ не вызывает super () .__ init__?

Получив из встроенного типа, а также из какого-то другого класса, кажется, что конструктор встроенного типа не вызывает конструктор суперкласса. Это приводит к тому, что методы __init__ не вызываются для типов, которые появляются после встроенного в MRO. Пример: class A: def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) print("A().__init__()") class B(list, A): def __init__(self, *args, **kwargs): print("B().__init__() start") […]

OverflowError возникает при использовании cython с большим int

python 3.4, windows 10, cython 0.21.1 Я компилирую эту функцию в c cython def weakchecksum(data): """ Generates a weak checksum from an iterable set of bytes. """ cdef long a, b, l a = b = 0 l = len(data) for i in range(l): a += data[i] b += (l – i)*data[i] return (b << […]

Как отформатировать электронную почту для отправки в виде SMS

Я хочу уведомлять людей через SMS, когда происходят определенные вещи. Похоже, это должно быть довольно странно. Но когда приходит SMS, в сообщении есть строка отправителя и темы, и я не могу понять, как настроить сообщение, чтобы избавиться от него. import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText message = MIMEMultipart() message['From'] = "xyz@gmail.com" […]

"Выход из итерируемого" vs "return iter (iterable)"

При обертывании (внутреннего) итератора часто необходимо перенаправить метод __iter__ в базовый итерируемый. Рассмотрим следующий пример: class FancyNewClass(collections.Iterable): def __init__(self): self._internal_iterable = [1,2,3,4,5] # … # variant A def __iter__(self): return iter(self._internal_iterable) # variant B def __iter__(self): yield from self._internal_iterable Есть ли существенная разница между вариантами А и В? Вариант A возвращает объект итератора, который был […]

Измените значение каждого N-го элемента в списке

Каков самый питонический способ выполнения арифметической операции для каждого n-го значения в списке? Например, если я начинаю со списка1: list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Я хотел бы добавить 1 к каждому второму пункту, который даст: list2 = [1, 3, 3, 5, 5, 7, 7, 9, 9, 11] Я […]

PyGObject в Python 3 на окнах

Кто-нибудь знает, возможно ли установить PyGObject / Gtk + 3 в Windows для Python 3? Я нашел установщиков на веб-сайте gnome для Python 2 ( здесь ) и нескольких инструкций, которые он работает с Python 3 (например, здесь ), но без установщика. Все команды компиляции, похоже, используют jhbuild, что из того, что я могу разглядеть, […]

Почему Python 2.6 не устанавливает литералов и понятий, а также не понимает диктофон?

Python 2.6 был в основном шаг за шагом, чтобы упростить преобразование в Python 3. Многие функции, предназначенные для Python 3, были реализованы в версии 2.6, если они не нарушили обратную совместимость с синтаксисом и классами lib. Почему не были заданы литералы ( {1, 2, 3} ), устанавливали понимание ( {v for v in l} ) […]

Python 3: Asterisk в функции печати

Давайте посмотрим: print([object, …], *, sep=' ', end='\n', file=sys.stdout) http://docs.python.org/py3k/library/functions.html?highlight=print#print Как мы можем интерпретировать это '*' ? Обычно звездочка ('*') означает множество объектов. Но для меня это загадка. Между двумя запятыми … Я даже боюсь думать, что это может быть опечатка.

Python - лучший язык программирования в мире.