@ru_python

Страница 253 из 9768
Viktor
01.02.2016
11:27:37
то есть есть скажем ['foo', 'bar', 'baz'] И мне больше не нужен 'bar' — я его удаляю но при этом arr[2] все еще 'baz' есть способ лучше чем arr[1] = None + filter

Viktor
01.02.2016
11:27:44
ну да

Pavel
01.02.2016
11:27:53
а зачем так?

Google
Ilya
01.02.2016
11:28:00
у словаря только максимальный индекс запаришься доставать

Henaro
01.02.2016
11:28:12
если обращение не по индексу, а по ключу - то точно словарик

Viktor
01.02.2016
11:28:18
только мне нужно append который будет автоматически иметь номер

Pavel
01.02.2016
11:28:20
len(items())

Kolyann
01.02.2016
11:28:36
почему не прокатывает простое присваивание None?

Ilya
01.02.2016
11:28:37
дак убрал элемент

и индексы сбились

но про Нон забыл

Viktor
01.02.2016
11:29:51
len(items())
то есть делать items = dict() ••• items[len(items)] = new_item?

тогда у меня клиенту отправляется 3500 null'ов

Ilya
01.02.2016
11:30:25
ощущается, что ты чего то не того придумал

тебе точно надо индекс сохранять?

Google
Kolyann
01.02.2016
11:30:54
опиши полность, как именно ты этот массив юзаешь?

Viktor
01.02.2016
11:30:58
А вообще былоо бы еще лучше если бы можно было заменять индексы

ой

Pavel
01.02.2016
11:31:08
то есть делать items = dict() ••• items[len(items)] = new_item?
я бы вообще так не делал. Но если надо, то max(d.keys()) тебе поможет.

Kolyann
01.02.2016
11:31:28
у тебя был [a, b, c, d], тебе не нужен c, но ты помнишь, что arr[3] d

Pavel
01.02.2016
11:32:12
с проверкой на пустое d, разумеется.
второй уровень сложности - мультитредовость этого словаря. :)

Viktor
01.02.2016
11:32:44
с проверкой на пустое d, разумеется.
пустого не будет, всегда минимум 1

Pavel
01.02.2016
11:33:20
пустого не будет, всегда минимум 1
но проверку вкорячь на всякий случай.

о! ещё можно sqlite держать с полем autoincrement.

Ilya
01.02.2016
11:34:28
монгу :)

о кстати, есть же файловая херня

Viktor
01.02.2016
11:35:05
о! ещё можно sqlite держать с полем autoincrement.
мне нужно хранение только в озу, то есть не сохраняется при перезапускке

ну смотрите, подключается клиент и получает id — какое-то число О подключении узнают все клиенты и получают id этого нового пользователя, а так же его имя Затем все сообщения от этого клиента приходят как msg: text, author: id Получатель находит соответствующее этому id имя и отображает

Viktor
01.02.2016
11:36:02
так же клиенты могут менять имя и отключаться

uuid()
это перебор И вообще мне нужно нечто более быстрое для поиска нежели строка

просто я уже вроде сделал

но попробйте зайти на s4sradio.tk и консольку открыть

отправка клиенту трех тысяч null это слишком

Google
Pavel
01.02.2016
11:37:38
словарь с обёрткой добавления и проверкой на race condition.

Viktor
01.02.2016
11:37:43
и хранение трех тысяч None это тоже не хорошо

вообще важнее возможность использовать уже освобождённые id

Pavel
01.02.2016
11:38:34
ёлки.

задача меняется вообще на ходу.

Viktor
01.02.2016
11:38:47
:)

я придумал только так — создать очередь и при освобождении элемента писать в нее его индекс

Pavel
01.02.2016
11:39:49
массив-пул свободных id и простой словарь. подключился - взяли из пула id, отключился - отдай обратно.

Viktor
01.02.2016
11:39:49
а при добавлении — брать индекс из этой очереди, а если пуста — делать .append()

вот это питон вэй?

я придумал только так — создать очередь и при освобождении элемента писать в нее его индекс

а при добавлении — брать индекс из этой очереди, а если пуста — делать .append()

Ilya
01.02.2016
11:40:41
http://unqlite.org/

во

альтермонга

Viktor
01.02.2016
11:41:17
А свои типы можно в *sql* хранить разые?

короче, я сейчас напишу код, а вы скажете: хорошо это или так не стоит делать никогда

Хорошо?

Pavel
01.02.2016
11:42:01
А свои типы можно в *sql* хранить разые?
если блоб можно, то и pickle туда влезет.

снизу вверх читать сообщения так непривычно...

Google
Viktor
01.02.2016
11:43:51
ага)

Pavel
01.02.2016
11:44:20
больше одной строки не влезает.

Viktor
01.02.2016
11:44:20
ну фронтенд не я делаю, и вообще пока я сделал его просто чтобы работал

Pavel
01.02.2016
11:44:57
я сейчас ему пару мегабайт текста скормил, а он мне отдал только первую строку.

Viktor
01.02.2016
11:45:20
я знаю

только первые 200 символов

зато в имени ограничения нет )

попробуй

Admin
ERROR: S client not available

Pavel
01.02.2016
11:50:15
ябраузер не хочет больше 10к в инпут принимать

Владимир
01.02.2016
11:51:07
При обновлении страницы присваивается новый ид

Pavel
01.02.2016
11:54:25
в ник можно жаваскрипт засунуть.

Владимир
01.02.2016
11:55:00
relf cedfnm&

куда сувать Оо

Pavel
01.02.2016
11:55:15
тыкни рядом с ополем ввода

на свой ник

Владимир
01.02.2016
11:56:11
не тыкается xD

Pavel
01.02.2016
11:56:30
на noname:3532?

Владимир
01.02.2016
11:57:02
неа

Google
Владимир
01.02.2016
11:57:11
обновил страницу и теперь 3533

Viktor
01.02.2016
12:08:52
Pavel
01.02.2016
12:09:02
теперь в нике

Viktor
01.02.2016
12:09:09
мда

я написаль

from collections import deque class QList(list): def __init__(self, seq=()): super().__init__(seq) self._queue = deque() def free(self, index): self[index] = None self._queue.append(index) def append(self, p_object): if self._queue: index = self._queue.popleft() self[index] = p_object else: super().append(p_object) index = len(self) - 1 return index

для удаления использовать free, для добавления — append

Pavel
01.02.2016
12:10:22
и это, сделай new_nick = ' '.join(new_nick.split()) а то с пробелами внике можно долго забавляться.

Viktor
01.02.2016
12:10:50
там надо и escape, и обрезание

Владимир
01.02.2016
12:12:00
https://habrastorage.org/files/a98/e04/74c/a98e0474c2534e138a265d3b9577caab.png

Viktor
01.02.2016
12:12:06
а почему ' '? не '' или str()

Pavel
01.02.2016
12:12:31
Вау, какое крутое решение) Элегантненько)
где-то упёр. Называется "как просто обрать все двойные пробелы"

/убрать

Viktor
01.02.2016
12:12:44
Ага

test = QList(('foo', 'bar', 'baz')) print(test) print(test.append('fox')) print(test) test.free(1) print(test) print(test.append('boz')) print(test) test.free(3) test.free(2) print(test) print(test.append('dsa'), test.append('dso'), test.append('dazzz')) print(test) Вот еще и тесты набросал

то чувство когда тест ужаснее и длиннее чем сам код

Pavel
01.02.2016
12:14:42
import unittest же.

Viktor
01.02.2016
12:15:39
где-то упёр. Называется "как просто обрать все двойные пробелы"
кстати, оно ведь все табы/ньюлайны/etc тоже превратит в пробелы

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