
Винни
30.11.2018
20:07:51
ладно, это уже не мои владения

Jason
30.11.2018
20:08:11
Не люблю текст

Винни
30.11.2018
20:08:30
хотя количество строк он лучше бы тоже срезал

Google

Jason
30.11.2018
20:09:22
Блок схему надо алгоритма рисовать
Иначе хз что за задача

Винни
30.11.2018
20:10:05

You
30.11.2018
20:11:23
В голове много оперативки просто

Andrew
30.11.2018
20:12:36
я не уверен что словари самый удобный формат хранения данных для такой структуры
как вариант могу предположить перевести это все в плоский табличный вид тогда можно будет очень быстро и просто формировать запросом SQL
нопремер

Сергей
30.11.2018
20:13:36
Уточняющий вопрос: на втором уровне в разных словарях мы находим 2 одинаковых ключа с пустым значением. Нам оба нужно удалить или только 1 и как решить, какой?

Aleksandr
30.11.2018
20:14:21
любой 1

Сергей
30.11.2018
20:16:08
Ключи могут повторяться на разных уровнях или только на одном?

Aleksandr
30.11.2018
20:17:38
на разных

Сергей
30.11.2018
20:19:36
Если ключи дублируются, но значение у обоих не пустое, тогда оба остаются?

Aleksandr
30.11.2018
20:19:55
да

^^
30.11.2018
20:21:17
smtplib -->starttls --> login 5.7.3 error, входные данные верны, как такое может быть?

Google

Сергей
30.11.2018
20:21:41
Да, задача не тривиальная, трудность в том, что мы можем сначала встретить ключ с пустым значением, потом - его дубль с заполненными и нам нужно будет вернуться к пустому ключу, чтобы его удалить

Aleksandr
30.11.2018
20:22:18
вот вот
задача разбита на 2 части
def get_recursively(search_dict, field):
fields_found = []
for key, value in search_dict.iteritems():
if key == field:
fields_found.append(value)
elif isinstance(value, dict):
results = get_recursively(value, field)
for result in results:
fields_found.append(result)
return fields_found
это выдает список значений по ключу,
осталось написать передачу пути до ключа и потом просто проверять, если значение пустое то удлаять ключ по пути.
ну а также не удлаять последнее
как тут путь сгенерить и передать..
path и писать туда каждый раз key .= '/' + key

Jason
30.11.2018
20:31:33
Значит пустые сразу удалять
Или сверять каждое слово методом сравнения

Сергей
30.11.2018
20:32:58
Если решать в лоб, я бы создал словарь, ключами которого были бы встречные ключи, а значениями - список (первый элемент - булевый - есть ли значение, потом - путь до ключа). Текущий абсолютный путь можно держать в переменной. При обработке нового встречного ключа смотрим его наличие среди ключей в словаре и пустоту значений. Если значения нет - удаляем, если есть, смотрим, есть ли значение в словаре, что мы создали, удаляем по пути, что там, заносим текущий путь и наличие значения в наш словарь
Путь можно кодировать и тем способом, что ты написал
Просто в словаре нет функции - найти ключ по значению (да и не может быть, учитывая возможную неуникальность значений)

Aleksandr
30.11.2018
20:57:55
спасибо испробую
но опять же это как-то сложно..

Tishka17
30.11.2018
20:59:28
Что за жесть? Откуда данные в таком формате? Какая бизнес задача?

Aleksandr
30.11.2018
21:00:45
если интересно - могу завтра рассказать
сейчас уже перегрев)
у меня есть функция которая рекурсивно нашла все значения по ключу.
Я просто, смотря на реузльтаты пойду сверху вниз и поудаляю все пустые, кроме одного(если больше нет пустых или со значениями)
Там 1600 строк.. наверное даже было проще руками это все обработать..

Tishka17
30.11.2018
21:04:20
Звучит как будто бизнес логика нарушена
Или формат хранения не отражает реальность

Алексей
30.11.2018
22:34:48
from datetime import datetime
start = datetime.now()
for i in range(10**7):
i
print(datetime.now() - start)
def q():
start = datetime.now()
for i in range(10**7):
i
print(datetime.now() - start)
q()
кто знает, почему код в функции работает в 2 раза быстрее?

Google

Nikita
30.11.2018
22:34:52
ребят, а подскажите плз с алхимией
делаю так
Support.query.filter_by(id_user=current_user.id).group_by(Support.date_time).first()
но получаю "свежую запись", а надо наоборот

Nikolay
30.11.2018
22:46:33
call/ret добавились

Алексей
30.11.2018
22:47:01

Файд
30.11.2018
22:51:35
Ребята, нужен разработчик приложения под Андроид для работы с контактами. Кто хочет пишите в личку, бюджет обсудим

Dmitri
30.11.2018
22:52:28

Алексей
30.11.2018
22:54:04

Dmitri
30.11.2018
22:54:34

คนแปลกหน้า
30.11.2018
23:07:17

Andrew
30.11.2018
23:28:27

Винни
30.11.2018
23:48:27
своей собственной командной оболочкой наебнул граф. систему

omgdatsvalya
01.12.2018
00:51:32

Sfy
01.12.2018
00:51:55

Donald
01.12.2018
01:12:01

Jentry
01.12.2018
01:17:38
ахтунг, кремлеботы в чате

Donald
01.12.2018
01:19:08
Кремлебот твоя мама?

Nikolay
01.12.2018
01:23:24
?

anton
01.12.2018
01:23:26
у меня вопрос.Вот читаешь всякие уроки листинги,и там иногда такое накуролесят,что невольно хочется спросить - Вычто , реально просекаете весь этот пиздец с применением встроеных методов в классах,лямбды и всякие другие мрачные моменты или вам хватает ,в целом ,примитивного кода ?Может не точно сформулировал вопрос ...

Sfy
01.12.2018
01:24:20

Google

Sfy
01.12.2018
01:24:29
Лямбды те же.
В чём мрак?

anton
01.12.2018
01:25:54
ладно.лямбды не сильно страшно

Maxim robox
01.12.2018
01:26:06

Admin
ERROR: S client not available

Jentry
01.12.2018
01:26:35

Maxim robox
01.12.2018
01:26:49
Слово «листинг» я слышал только в 2005 году. =)

Jentry
01.12.2018
01:27:24
листинг это зачет да, в олдскульных книжках по бейсику на русском использовали термин
там даже оператор есть - LIST

anton
01.12.2018
01:39:35
у меня есть скрипт1 который через os.walk смотрит папки.сохраняет в переменную ,списком,их там может быть разное кол-во, и проверяет str имена в базе sqlite.если имени нет в базе вызывается скрипт2 в котором есть entry для ввода имени файла ,которого нет в базе и кнопка добавить в базу.как сделать что бы в entry принималось имя несуществующего файла ?я вообще програмный директор на телеканале , я не особо соображаю в питоне ,да ,пару скриптов могу ,но это сильно ОГО для меня на данном этапе , но мое начальство жмет 2000 зелени на нормальный продукт.вот и дратути ))

Maxim robox
01.12.2018
01:42:49


anton
01.12.2018
01:57:32
украина.у нас ввелись языковые квоты.с 7 утра до 18 вечера я обязан выдерживать 75% украинского языка.с 18 до 22:00 я должен выдерживать 75 % украинского языка.иначе будет для телекомпании штраф вразмере стремного размера от лицензионного сбора.Я зафакался считать это дело в ручную...тем более что эфирная программа позволяет читать логи.вот и задача:
на удаленный комп залился файл(или 20 файлов).скрипт выдал через tkinter окно в котором в котором есть кнопка(точнее снесколько кнопок .но это в позже) "добавить файл"для каждого файла(так пока у меня),может я потом поумнею,но у меня 70 челов в штате и все за день пробега.т мимо меня по много раз,и эфир орет вместе с редактором...
так вот :)
мне надо что бы когда я нажму кнопку "добавить файл" выскочило окно с полем entry в котором уже будет нарисовано имя файла который я хочу добавить.окно выскакивает и поле есть , но как туда впихнуть имя добавляемого файла ,автоматически,я не просекаю
дело в том что надо именно так ,потому что будет еще другая кнопка для файлов "за бабло" и там совсем другая ситуация,график выхода и т.д...


Maxim robox
01.12.2018
02:03:08


Винни
01.12.2018
02:03:26
найми фрилансера
найми фрилансера
да, с ним деньгами придется делится, но ты все равно будешь в профите
потому что не понимая того, что ты делаешь - ты будешь делать сплошной говнокод, очень сложный и запутанный, везде, где только возможно и невозможно
так еще и голова будет течь
поверь мне, тебе будет реально лучше фрилансера нанять

Google

Jason
01.12.2018
02:16:19
Жесть

anton
01.12.2018
02:16:32

Jason
01.12.2018
02:16:47
А тут что не спят вообще?

anton
01.12.2018
02:18:09

Donaudampf
01.12.2018
02:50:37

Aka
01.12.2018
03:27:36
А че так скучно то?
Ночью спать нельзя

hachiman
01.12.2018
03:31:01

Aka
01.12.2018
03:32:25

hachiman
01.12.2018
03:32:47

Aleksandr
01.12.2018
03:33:47

hachiman
01.12.2018
03:35:50
Пузырки... Мило...