Тёмный

Встроенные коллекции и модуль collections 

Computer Science Center
Подписаться 160 тыс.
Просмотров 19 тыс.
50% 1

compscicenter.ru/
И снова встроенные коллекции: кортеж, список, множество, словарь -- обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Лекция №5 в курсе "Python" (осень 2015).
Преподаватель курса: Сергей Лебедев
Страница лекции на сайте CS центра: goo.gl/To8pCC

Опубликовано:

 

9 окт 2015

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 14   
@amigo4884
@amigo4884 2 года назад
Было круто, спасибо!
@AndreyZloy
@AndreyZloy 3 года назад
29:33 "Без nonlocal эта штука работать не будет" - на самом деле без global эта штука работать не будет. Ведь xs это глобальная переменная, а не переменная в окружающей функции
@ainabcenikita5891
@ainabcenikita5891 7 лет назад
Вы сказали, что вместо большого кортежа нужно использовать список 18:00 . Но ведь если мы хотим определить какой-то постоянный набор значений, записываем его в кортеж и всё что мы будем с этим кортежем делать, так это обращаться к его элементам. Разве работа с кортежами не быстрее, чем со списками? Кроме того такой кортеж будет потреблять меньше памяти, нежели список. Разве не целесообразней в данной ситуации выбрать кортеж?
@slebedev
@slebedev 7 лет назад
Суть ремарки в лекции в том, что выбор между кортежем и списком зависит от природы данных, которые вам нужно хранить. Я не думаю, что случайный доступ к элементу кортежа быстрее, чем к элементу списка. Что касается памяти, то список действительно может занимать больше (в зависимости от того, как вы будут его строить), но, мне кажется, на практике это чаще всего не значимо.
@ainabcenikita5891
@ainabcenikita5891 7 лет назад
Sergei Lebedev большое спасибо, Сергей за отличные лекции и за Ваш ответ
@victorklimov5254
@victorklimov5254 8 лет назад
Про namedtuple Вы сказали, что _replace() создает новый именованный кортеж, но id() по кортежу до реплэйс и после выдает одно и то же число.
@slebedev
@slebedev 8 лет назад
+Виктор Климов возможно, новый кортеж был аллоцирован ровно на месте старого. namedtuple, как и tuple, неизменяемый, поэтому у _replace нет других вариантов, кроме как создать новый объект. >>> Foo = namedtuple("Foo", "x") >>> a = Foo(42) >>> b = a._replace(x=24) >>> id(a) 4324904008 >>> id(b) 4324903112
@donfedor007
@donfedor007 3 года назад
Можете пояснить, "sales = defaultdict(lambda: defaultdict(int))" не могу разобраться, что тут происходит
@maksymholota2983
@maksymholota2983 3 года назад
41:05 что значит "...работал за линию..."??
@SergeySkyMakarov
@SergeySkyMakarov 3 года назад
За линейное время, т.е. O(n)
@NMelis
@NMelis 6 лет назад
Сергей Брин не ты ли это?
@igorceapa3816
@igorceapa3816 3 года назад
print(reversed(range(10+1))) -> < range_iterator object .....>
@relesgod6230
@relesgod6230 3 года назад
print(list(reversed(range(10+1))))
@GordonShumway
@GordonShumway 8 лет назад
По поводу 5:30, там (None, 2, None) лишнее, попробовал в консоли, вышло так: >>> NAME, BIRTHDAY = slice(2), slice(2, None) >>> NAME slice(None, 2, None) >>> BIRTHDAY slice(2, None, None)
Далее
would you eat this? #shorts
00:29
Просмотров 578 тыс.
Многопоточность и GIL
1:21:47
Просмотров 34 тыс.