9,3K подписчиков
List astonishment Допустим, мы хотим написать функцию, которая будет принимать на вход список. Естественным ходом выглядит написать что-то вроде: >>> def foo(data=[]): ... data.append(5) ... return data Ждем, что при каждом новом вызовы функции список снова будет пустым. На самом же деле: >>> foo() [5] >>> foo() [5, 5] >>> foo() [5, 5, 5] Вот это поворот! Причина такого поведения в том, что в Python значения дефолтных аргументов вычисляются только один раз -- при объявлении функции. То есть, после того, как инструкция def выполнена, список data уже создан...
2 года назад
106 подписчиков
Всем привет! В этой статье поговорим о том, какие ещё есть структуры данных в Python. Две таких структуры данных мы уже разбирали это списки и словари. Кроме них есть ещё такие структуры данных как: кортежи (tuple) и множество (set). Начнём с множества (set). Set - это набор уникальных элементов, то есть в set никогда не будет повторяющихся элементов. Множество записывается в фигурные скобки {} set = {...} Множество работает быстрее списков, поэтому его чаще всего применяют для работы с большими наборами данных...
1 год назад