@ru_python

Страница 9436 из 9768
Tishka17
26.06.2019
05:28:15
в теории по ключу, так как поиск по хешам
Так после сравнения хэша все равно надо равенство проверить

Google
Forevka ÐΞV
26.06.2019
05:31:47
Разложи при помощи dis

Словари в Питоне это хеш таблицы, и вместо того чтобы искать переменную в глоьальной/локальной памяти ты достаешь её сразу из таблицы

polunin.ai???
26.06.2019
05:33:25
А тебе зачем?
Попросили оптимизировать скорость работы проги. Теперь думаю что быстрее, две проверки или доступ по ключу. Мини, но все же оптимизация. Или настолько сильно не стоит париться?

Aidar
26.06.2019
05:33:48
то тебе надо дополнительно проверить строки

Forevka ÐΞV
26.06.2019
05:33:48
Aidar
26.06.2019
05:34:01
да, это будет не так часто

polunin.ai???
26.06.2019
05:35:02
Эм. А ты профайлером смотреть что у тебя тормозит?
Не было возможности ещё. А какой есть профайлер для времени выполнения? И раз уж начали ещё один вопрос - насколько быстро чтение и запись в файл через pickle?

Google
polunin.ai???
26.06.2019
05:36:11
Я смотрел только, что пас,ьи много сжирает (де)сериализация

Чем что?
В коде тупа with open() as f: foo = pickle.load(f) Хранится большой словарь на несколько косарей записей со вложенными словарями

Мне такой подход кажется странным, или это нормальная практика?

Tishka17
26.06.2019
05:38:51
Здравствуйте. Что быстрее - доступ по ключу в словаре, или проверка условия if var == 'some_text'?
from timeit import timeit x={str(i)+'!':i for i in range(100)} s='2!' def do(): x[s] def do2(): s=='2!' print(timeit('do()', globals=globals())) print(timeit('do2()', globals=globals()))



Aragaer
26.06.2019
05:40:32
ну есть locals() и globals(), соответственно они тоже словари

в поиске в словаре надо в globals найти словарь, а в нем найти нужное значение, а в сравнении надо найти только саму переменную

Tishka17
26.06.2019
05:41:57
ну есть locals() и globals(), соответственно они тоже словари
Ну тут в обоих случаях сначала находим переменную для проверки

Aragaer
26.06.2019
05:42:02
ага

Tishka17
26.06.2019
05:42:13
А потом уже поиск в словаре или сравнение



А вот .get вместо скобок уже ощутимо медленнее

?? Eugene
26.06.2019
05:44:29
T.
26.06.2019
05:44:42
Разница слишком мала, что бы делать выводы



S
26.06.2019
05:47:57
А где вы храните токены, ключи ко всяким апишкам? В исходном коде выглядит как то несекюрно и криво. Хранить в json файликаз и подгружать когда надо?

Google
polunin.ai???
26.06.2019
05:48:48
Нахуя тебе пикл?
Мне дали код, в нем он используется

S
26.06.2019
05:49:09
Я на флешке
А флешку где хранить

T.
26.06.2019
05:50:03
В .txt файле ?

KEIDJ
26.06.2019
05:50:08
А флешку где хранить
Тут уже от возможностей каждого зависит.

Tishka17
26.06.2019
05:51:09
Pickle плохо, потмоу что: 1. Небезопасно (https://habr.com/ru/company/otus/blog/353480) 2. Формат жёстко привязан к внутренней структуре кода 3. python-only

Aragaer
26.06.2019
05:52:10
и тем не менее, если ты что-то нафигачил по-быстрому в скрипте, а хочешь это в другом своем таком же наколенном скрипте, то можно

Andrey
26.06.2019
05:52:51
Привет кто то может помочь мне разобраться, почему я получаю ошибку? Мой проект: └── test_folder |___ __init__.py ├── foled_1 │ ├── __init__.py │ └── file_1.py └── foled_2 ├── __init__.py ├── file_2.py Когда я пытаюсь запустить файл file_1.py каторый находится в папке foled_1 Через PyCharm всё работает но когда я пытаюсь запустить этот же файл через terminal Получаю ошибку: Traceback (most recent call last): File "file_1.py", line 1, in <module> from foled_2.file_2 import a ModuleNotFoundError: No module named 'foled_2' Скрипт file_1.py: from foled_2.file_2 import a print(a) print("Hello") Скрипт file_2.py: a = 2

Tishka17
26.06.2019
05:53:00
Tishka17
26.06.2019
05:54:40
Andrey
26.06.2019
05:56:10
В папке foled_1 нету никаких foled_2 поэтому импорт не работает
Да но я делаю import foled_2.file_2 import a И всё нормально работает в PyCharm

Tishka17
26.06.2019
05:56:37
Worlak
26.06.2019
05:56:44
Да но я делаю import foled_2.file_2 import a И всё нормально работает в PyCharm
Все дело в папке изначальной в проекте. Такое часто бывает

Google
Worlak
26.06.2019
05:56:52
Тут проблема в том, что он создал проект, потом создал ещё папку и пучарм думает, что это что-то вложенное и даёт подсказку так делать, но когда напрямую, то все немного иначе. Чтоб работало просто убери foled2

Worlak
26.06.2019
05:59:43
При запуске из консоли просто убери импорт фолд и посмотри на результат

Andrey
26.06.2019
06:02:27
При запуске из консоли просто убери импорт фолд и посмотри на результат
Всмысле убрать? Как я могу просто убрать импорт...?

Whore Amazing
26.06.2019
06:02:48
Вилкой, вот так рас, рас.

Ринат
26.06.2019
06:04:41




Andrey
26.06.2019
06:05:52
Cykooz
26.06.2019
06:05:52
Наверное потому что >>> "None" is not None True

Aidar
26.06.2019
06:05:53
скорее всего message.text это lazy объект

Ринат
26.06.2019
06:07:00
То же самое же

выдает

Forevka ÐΞV
26.06.2019
06:07:17
Tishka17
26.06.2019
06:07:27
А конфигурацию запуска?

Aidar
26.06.2019
06:07:31
выдает
выведи type(message.text)

Tishka17
26.06.2019
06:07:56
Хотя странно чет

꧁꧂OGURCHIK꧁꧂
26.06.2019
06:09:35
?

Ринат
26.06.2019
06:09:57
выведи type(message.text)
ничего не выводит

Google
꧁꧂OGURCHIK꧁꧂
26.06.2019
06:10:22
?

Aidar
26.06.2019
06:10:49
ничего не выводит
не может ничего не выводить

Tishka17
26.06.2019
06:10:52
ничего не выводит
А ты как вывел?

Aidar
26.06.2019
06:11:05
может не сделал принт?

print(type(message.text))

я думал это очевидно

Ринат
26.06.2019
06:11:51
<class 'NoneType'>

꧁꧂OGURCHIK꧁꧂
26.06.2019
06:11:53
Aidar
26.06.2019
06:12:06
?
!report

꧁꧂OGURCHIK꧁꧂
26.06.2019
06:12:17
Aidar
26.06.2019
06:12:41
<class 'NoneType'>
прикольно, можно код посмотреть?

Tishka17
26.06.2019
06:13:44
http://www.opennet.ru/opennews/art.shtml?num=50957

꧁꧂OGURCHIK꧁꧂
26.06.2019
06:13:55
If text in message?

Как там проверить в списке

Tishka17
26.06.2019
06:14:14
Юзал?
Нет. Главное там есть абзац с краткой инфой о других либах

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