@spbpython

Страница 17 из 785
Serge
25.03.2016
16:54:25
Не, я утверждаю это про set(fp.readlines())
это то как раз да, понятно;)

хотя, получается, что тогда как раз вызов конструктора- путь в swap

Dmitry
25.03.2016
16:54:59
Я же говорю он как в словаре будет расширяться и перестраиваться по мере заполнения

Serge
25.03.2016
16:55:11
а вот, если {x for x} по одному, то можно еще выехать с ленивостью

Google
Serge
25.03.2016
16:55:18
но процу будет тяжко

Pavel
25.03.2016
16:55:26
В общем, set() - быстро, конструктор с циклом внутри будет честно итерироваться и кормить set.

Aleksandr
25.03.2016
16:55:32
Интересно, алгоритм аллокации памяти там такой же как list или нет ...

Serge
25.03.2016
16:56:19
похоже таки одинаково должно работать в {} и в set()

пора идти код читать

Roman
25.03.2016
16:56:52
>Never call readlines() on a file

Serge
25.03.2016
16:57:04
так можно до любых фантазий договориться

Aleksandr
25.03.2016
16:57:13
Не факт, что одинаково, потому что [x for x in foo] и list(x for x in foo) немного разное

Aleksandr
25.03.2016
16:57:51
scope у x разный

Roman
25.03.2016
16:58:00
ну это

Google
Roman
25.03.2016
16:58:10
давайте просто достанем и померяемся :)

Serge
25.03.2016
16:58:36
Aleksandr
25.03.2016
16:58:39
x = 0 [x for x in ...] print(x) по идее выдаст последнее значение x из list (или следующее за ним).

С list(x for x in foo) - выдаст 0

Кидали же в этом чатике зубодробильную конструкцию с [...] где какая-то жесть была. И связана она была со скоупом переменных

Dmitry
25.03.2016
16:59:31
Ага

Serge
25.03.2016
16:59:44
x = 0 [x for x in ...] print(x) по идее выдаст последнее значение x из list (или следующее за ним).
пора меряться In [1]: [x for x in range(3)] Out[1]: [0, 1, 2] In [2]: print(x) --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-2-81745ac23551> in <module>() ----> 1 print(x) NameError: name 'x' is not defined In [3]: list(y for y in range(3)) Out[3]: [0, 1, 2] In [4]: print(y) --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-4-36b2093251cd> in <module>() ----> 1 print(y) NameError: name 'y' is not defined

Dmitry
25.03.2016
16:59:49
Но в 3 вроде норм уже

Serge
25.03.2016
17:00:29
Aleksandr
25.03.2016
17:00:34
Угу, попробуй 2-ой питон.

»> x = 0 »> bar = [x for x in range(10)] »> x 9

Python 2.7.11 (default, Dec 5 2015, 14:44:53)

Serge
25.03.2016
17:01:21
сраное говно ваш 2-й питон In [1]: [x for x in range(3)] Out[1]: [0, 1, 2] In [2]: print x 2 In [3]: list(y for y in range(3)) Out[3]: [0, 1, 2] In [4]: print y --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-4-d7b495266d53> in <module>() ----> 1 print y NameError: name 'y' is not defined

Aleksandr
25.03.2016
17:01:32
Печаль тоска )

Но знать нужно. Особенно любителям математических названий переменных )

Roman
25.03.2016
17:03:29
list([y for y in xrange(3)])

Alexey
25.03.2016
17:04:38
я чо то не помню... а был ли?:)
Нет, ленивым он никогда не был.

Serge
25.03.2016
17:05:23
да я вспомнил уже, как по приколу в него blueray rip загонял;)

Pavel
25.03.2016
17:05:30
list([y for y in xrange(3)])
Это что за дикость? ))

Aleksandr
25.03.2016
17:05:38
Роман борется с проблемой

Google
Aleksandr
25.03.2016
17:06:09
Но ему это не поможет ) Все равно выдаст 2

Serge
25.03.2016
17:06:15
list([y for y in xrange(3)])
так если ты написал list, то уже всё хорошо;)

тем более забавно

Michael
25.03.2016
17:08:59
Просто Гвидо... Лямбда это красиво...

Лямбды в питончике это жалкая пародия.

Такое чувство что гвидо в детстве лисперы унижали.

Aleksandr
25.03.2016
17:09:46
Тогда лисп - язык для истеричных баб )

Так как они как правило любят оверюзать скобки в смайлах )

Serge
25.03.2016
17:12:21
лисп - это низкоуровневый язык

ast наверху - это низкий уровень же

Roman
25.03.2016
17:14:13
https://dpaste.de/Owbc

а сколько у вас оно показывает циферок, если запускать с параметром 64, 4096 и 32768 ?

и что за железка

Serge
25.03.2016
17:18:33
я думаю, такую простыню вряд ли кто-то сейчас будет копипастить и запускать;) опасный ты парень...

GNU/Docker
25.03.2016
17:20:36
Ойвей.

Тогда лисп - язык для истеричных баб )

Так как они как правило любят оверюзать скобки в смайлах )

Так же связано как борода и линукс.

Google
Roman
25.03.2016
17:21:00
ookay

Aleksandr
25.03.2016
17:21:06
Т.е. напрямую.

GNU/Docker
25.03.2016
17:21:44
Лисперы не смотрят на скобки, они смотрят на инденты, угадайте как где. Парные скобки подсвечиваются редактором.

Если что-то так мучает, то пишешь короткий макрос, переопределяющий ридтейбл и внутри его вызова пишешь без скобок.

или на синтаксисе любого языка.

как напишешь.

Ок. Значит все линуксоиды - бородатые, и все бородатые - линуксоиды.

Т.е. напрямую.

fs.readdir(source, function (err, files) { if (err) { console.log('Error finding files: ' + err) } else { files.forEach(function (filename, fileIndex) { console.log(filename) gm(source + filename).size(function (err, values) { if (err) { console.log('Error identifying file size: ' + err) } else { console.log(filename + ' : ' + values) aspect = (values.width / values.height) widths.forEach(function (width, widthIndex) { height = Math.round(width / aspect) console.log('resizing ' + filename + 'to ' + height + 'x' + height) this.resize(width, height).write(dest + 'w' + width + '_' + filename, function(err) { if (err) console.log('Error writing file: ' + err) }) }.bind(this)) } }) }) } })

ой а что это у нас? О, скобочки! Мноого скобочек! Наверное это лисп.

=)

Aleksandr
25.03.2016
17:25:27
Ок. Значит все линуксоиды - бородатые, и все бородатые - линуксоиды.
В детстве я сидел на винде и у меня не было бороды. Потом я пересел на gentoo. У меня появилась борода. Связь же.

Andrey
25.03.2016
17:25:52
Aleksandr
25.03.2016
17:26:16
Просто js, просто хард.

GNU/Docker
25.03.2016
17:26:18
У меня тоже генту. А вот борода бывает не всегда.

А два года когда у меня была генту - у меня не было бороды.

Aleksandr
25.03.2016
17:27:03
явно нет, он там скорее такой же как в dict
Т.е? Он на каждый .add будет пересоздавать массив на n + 1 элемент? Я просто не помню как в dict это сделано.

GNU/Docker
25.03.2016
17:27:11
Связь же.

Aleksandr
25.03.2016
17:27:30
Исключение подтверждает правило.

Google
Roman
25.03.2016
17:28:00
а в js строки иммутабельны?

Aleksandr
25.03.2016
17:28:14
Должны быть.

Иначе все пишут неээфективвное говно )

Roman
25.03.2016
17:29:17
вообщем, лямбды не нужны :)

GNU/Docker
25.03.2016
17:29:33
Это какой-то рандомный кусок жээса. Я его не знаю и знать не хочу.

Ок. Споры вощем тоже не нужны. Те которые истину не порождают )

Serge
25.03.2016
17:30:15
в пятницу в чатике - самое оно:)

GNU/Docker
25.03.2016
17:30:37
Нууу

не совсем

лучше вот что

в пятницу за пивасиком

?

Aleksandr
25.03.2016
17:31:52
Или в качалку )

Dmitry
25.03.2016
17:32:35
Т.е? Он на каждый .add будет пересоздавать массив на n + 1 элемент? Я просто не помню как в dict это сделано.
В дикте до 50к элементов множитель 4 потом 2. Изначальный размер 8. Перестройка и увеличение происходит после того как заполенность будет на 2/3.

Andrey
25.03.2016
17:32:47
лямбды нужны так же, как указатели на функции. например когда ты делаешь операцию удаленно в каком-нибудь мапредьюсе

Roman
25.03.2016
17:33:03
кстати, возвращаясь к уникальным значениям из файла. а что делать, если они там как-то не так лежат? например, мы имеем какой-нибудь бинарный формат?

Aleksandr
25.03.2016
17:33:21
Тогда это так же, как и list ...

лямбды нужны так же, как указатели на функции. например когда ты делаешь операцию удаленно в каком-нибудь мапредьюсе
У нас они first class, поэтому аналогия с указателями непонятна. Ты можешь объявить фунцию и ее передать.

Serge
25.03.2016
17:35:14
Или в качалку )
это надо утром. вот у меня всё болит со вчера, но завтра все равно:)

Andrey
25.03.2016
17:35:14
но когда она в одно выражение, то могу и не объявлять

Страница 17 из 785