@ru_python

Страница 3168 из 9768
stonepig
11.07.2017
20:26:08
гусь его щипает

не заёбывайте гифками подобными. как минимум - это оффтоп

тут уже нихуя не “жизнь” и не “природа”. собаку привязали на цепь, гусю связали лапы. это очевидное издевательство над теми, у кого мы в гостях

Oleg
11.07.2017
20:28:56
ты гифки до сих пор видишь?

Google
Oleg
11.07.2017
20:28:58
О_о

stonepig
11.07.2017
20:29:02
да



Oleg
11.07.2017
20:29:19
Как-бы поудаляли всё

stonepig
11.07.2017
20:29:42
хз, у меня остались почему-то

Shamil
11.07.2017
20:30:08
sys.getsizeof([i for i in range(1000)]) 9024 sys.getsizeof([1 for _ in range(1000)]) 9024

почему такой же размер если во втором случае все элементы ссылаются на один и тот же объект

Denis
11.07.2017
20:31:06
Потому что это размер списка ссылок

melancholiac
11.07.2017
20:31:21
потому что 1 это тоже питонообъект

даже литерал

Oleg
11.07.2017
20:31:34
размер(ссылка инт) == размер (инт) ??

melancholiac
11.07.2017
20:31:38
афайк

Denis
11.07.2017
20:31:42
Нет

Google
Oleg
11.07.2017
20:31:56
тогда немного не понял

Denis
11.07.2017
20:32:06
Ссылки везде одинаковые

Инт может быть любого размера

>>> sys.getsizeof(2**10000000) 1333360

Oleg
11.07.2017
20:32:49
аа, я понел

[1, 2, 3, 4] — это ссылки на 1, на 2, на 3... т.е. ссылки а [1, 1, 1, 1] — это ссылка на 1, ссылка на 1, ссылка на 1

т.е. всё это ссылки

да?

Artem
11.07.2017
20:33:47
>>> sys.getsizeof([0]*1000) 4036 >>> sys.getsizeof([0 for _ in range(1000)]) 4516

Oleg
11.07.2017
20:34:10
блэт

сложно

объясните магию)

Igor
11.07.2017
20:34:40
typedef struct { PyObject_VAR_HEAD /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */ PyObject **ob_item; /* ob_item contains space for 'allocated' elements. The number * currently in use is ob_size. * Invariants: * 0 <= ob_size <= allocated * len(list) == ob_size * ob_item == NULL implies ob_size == allocated == 0 * list.sort() temporarily sets allocated to -1 to detect mutations. * * Items must normally not be NULL, except during construction when * the list is not yet visible outside the function that builds it. */ Py_ssize_t allocated; } PyListObject;

Artem
11.07.2017
20:36:00
>>> x = [] >>> for i in range(100): ... x.append(i) ... print(sys.getsizeof(x)) ... 52 52 52 52 68 68 68 68 100 100 100 100 100 100 100 100 136 136 136 136 136 136 136 136 136 176 176 176 176 176 176 176 176 176 176 220 220 220 220 220 220 220 220 220 220 220 268 268 268 268 268 268 268 268 268 268 268 268 324 324 324 324 324 324 324 324 324 324 324 324 324 324 388 388 388 388 388 388 388 388 388 388 388 388 388 388 388 388 460 460 460 460 460 460 460 460 460 460 460 460 >>>

Denis
11.07.2017
20:36:26
>>> a = [0] * 1000 >>> sys.getsizeof(a) 8064 >>> a.append(0) >>> sys.getsizeof(a) 9120 >>> a.pop() 0 >>> sys.getsizeof(a) 9120

Tigran
11.07.2017
20:36:26
Типа, первый вариант саллоцировал точно, а второй наращивал оптимальной стратегией?

Oleg
11.07.2017
20:36:26
сколько неясностей...

Artem
11.07.2017
20:36:37
лист кусками растет

да

именно так

Google
Denis
11.07.2017
20:36:46
Почти как std::vector

Artem
11.07.2017
20:36:50
я сам не знал, что первый точно саллоцирует)

Oleg
11.07.2017
20:37:10
а

ээ

Denis
11.07.2017
20:37:53
Сверху он знает, сколько надо памяти, а снизу нет

Oleg
11.07.2017
20:38:11
аа

melancholiac
11.07.2017
20:38:20
и тип салоцировал больше?

Artem
11.07.2017
20:38:33
да

Oleg
11.07.2017
20:38:33
"на всякий случай"

melancholiac
11.07.2017
20:39:28
пример от артема годный

который второй

Igor
11.07.2017
20:54:22
Может кто возился с этим

Кто знает, что значит поле allocated в PyObjectList?

Denis
11.07.2017
20:55:07
Видимо, сколько памяти выделено

Igor
11.07.2017
20:56:08
class PyObject(ctypes.Structure): _fields_ = [('ob_refcnt', py_ssize_t), ('ob_type', ctypes.c_void_p)] class ListStruct(PyObject): _fields_ = [('allocated', ctypes.c_size_t), ('ob_item', ctypes.c_void_p)] def __repr__(self): return f'ListStruct(allocated={self.allocated},ob_item={self.ob_item})' @classmethod def wrap(cls, obj): return cls.from_address(id(obj)) a = [0] * 1000 b = [0 for _ in range(1000)] ListStruct.wrap(a) => 1000 ListStruct.wrap(b) => 1000

In [55]: a.append(1) In [56]: ListStruct.wrap(a) Out[56]: ListStruct(allocated=1001,ob_item=140436480158208)

Denis
11.07.2017
20:57:38
А если поп сделать?

melancholiac
11.07.2017
20:58:58
Denis
11.07.2017
20:59:07
В а

Google
Igor
11.07.2017
21:02:05
https://github.com/python/cpython/blob/b879fe82e7e5c3f7673c9a7fa4aad42bd05445d8/Objects/listobject.c#L32

По идее, в allocated должен быть реальный размер массива

Но достать его у меня не получилось(

Admin
ERROR: S client not available

Timofey
11.07.2017
21:07:37
господа. простите за беспокойство. дело в том что в бегиннерах все уже спят. а у меня вопрос который не дает мне туда отчалить. и так: как мне передать регулярку скрипту? python3 script.py \w+ text.txt

melancholiac
11.07.2017
21:08:19
ты ж в анаконде работаешь?

Zenin
11.07.2017
21:08:20
Такс... кто как и я - несчастный владелец WP?

Венда обновилась и все сломалось. Как неожиданно )

Serj
11.07.2017
21:08:43
Timofey
11.07.2017
21:08:57
ты ж в анаконде работаешь?
да. я утряс тот момент с запускам. но наш метод не работает

Zenin
11.07.2017
21:09:08
я думал они все уже вымерли
Так ведь win phone 10 только в прошлом году вышел, когда б успели )

melancholiac
11.07.2017
21:09:09
argv?

Zenin
11.07.2017
21:09:33
Венда обновилась и все сломалось. Как неожиданно )
Но прикол в том, что через 2 дня вышло еще одно обновление... и все стало еще хуже

Timofey
11.07.2017
21:09:40
argv?
да. естественно

Zenin
11.07.2017
21:09:53
крч я не могу запустить часть приложений, я не могу УДАЛИТЬ даже их.

melancholiac
11.07.2017
21:09:58
и почему это аргв не работает?

Zenin
11.07.2017
21:10:03
черт побери, ось которая не дает удалить проги!!!

melancholiac
11.07.2017
21:10:23
Google
Zenin
11.07.2017
21:10:31
Если кто сталкивался и победил - напишите плз)

Timofey
11.07.2017
21:10:47
и почему это аргв не работает?
да он может и работает, не работает конструкция print(re.search('argv[1]', text.txt).group())

Serj
11.07.2017
21:11:00
да. естественно
если ты пилишь программу, а не в образовательных целях, то argv тебе не нужен. тебе нужен argparse

Zenin
11.07.2017
21:11:02
и чего ты ожидал?
Что _как всегда_ все будет не слишком идеально, но нормально. С таким я сталкивался последний раз только при первой установке wp 10

Timofey
11.07.2017
21:11:34
беспалезно

melancholiac
11.07.2017
21:11:59
кавычки .-.

Serj
11.07.2017
21:12:00
тебе бы почитать что-нибудь

толку с таких вопросов

Страница 3168 из 9768