Vladimir
(це не питон)
это бунт? что значит це не питон? тут только питон)
Andrey 😼
УМВР (tm)
Igor
Привет всем. Подскажите, пожалуйста, в этом сообществе можно публиковать предложения по работе?
Yehor
только если это будет не обычный копипаст, а чтобы было полезно для участников
Vladimir
А почему бы не воспользоваться systemd?
Andrey
есть список пар типа [(1, "1"), (1, "2"), (2, "1"), (3, "2")] Нужно получить словарь {1: ["1", "2"], 2: ["1"], 3: ["2"]} - есть способ сделать это одним выражением? (zip lambda генератор списков и т.д.)
P
Похоже на собеседование)
P
Я бы попробовал через defaultdict
P
Ещё надо описать поведение в случае с повторениями
Aquinary
Вы объекты класса или какие-либо переменные объявляете в начале функции или только в тот момент, когда начинаете использовать её?
Aquinary
obj1 = Obj1() obj2 = Obj2() # что-то делаем с obj1 # что-то делаем ещё # что-то делаем ещё 2 # что-то делаем с obj2 или obj1 = Obj1() # что-то делаем с obj1 # что-то делаем ещё # что-то делаем ещё 2 obj2 = Obj2() # что-то делаем с obj2 ?
Andrey
Похоже на собеседование)
Не, это просто мне не хочется делать так r = {} for k, w in d: if k not in r: r[k] = [w] else: r[k].append(w) Здесь еденственная проблема для генератора словаря - в 3 строчке кода - узнать были ли ключи уже добавлены в создаваемый словарь
Andrey
Можно конечно заморочиться с генератором списков, возможно с несколькими for внутри, и обернуть все это потом в dict(), но хотелось бы более красивое решение
Aquinary
Может кто знает конвертер из CSV в dict? Как-то впадлу свой велосипед изобретать
Aquinary
Задача единоразовая
P
Настолько единоразовая, что проще написать самому
Andrey
Ещё надо описать поведение в случае с повторениями
через конвертацию в set и обратно решается
Andrey
Я и не просил оптимальное решение) мне просто интересно можно ли это реализовать в 1 пусть сложное выражение
Andrey
проблема опять же в проверке есть ли уже ключ при добавлении
adel
@terehinAV Можно функцию написать проверки наличия в массиве, но не знаю, считается ли это уже подходящим для вас.
Andrey
если это нельзя сделать в 1 строку то это не лучше цикла for) возможно это вообще нельзя реализовать в 1 строку. задачка на интерес, это не из задач собеседований еще раз повторюсь.
Aquinary
XY?)))))
Anonymous
Питонисты, а дайте пару советов по телеграмм боту. Допустим, мне нужно делать какие-то вещи шаг за шагом. Типа введи имя, фамилию, адрес и номер телефона. Все это оказывается можно сделать только с помощью converstation хендлера, разбросав код по разным функциям, поскольку мы имеем дело со state machine, то никак ли нельзя это обойти, чтобы ожидания ввода в одной функции не блокировало всю программу?
Alex
там встроенный FSM
Anonymous
там встроенный FSM
а фсм в python-telegram-bot не скоро подвезут, да? :(
Alex
а фсм в python-telegram-bot не скоро подвезут, да? :(
там есть встроенный вроде как.
Anonymous
там есть встроенный вроде как.
Ща тогда у них спрошоу.
Anonymous
там есть встроенный вроде как.
Или может реально забить и сделать все через converstation handler, просто это реально немного неудобно. Считай тебе нужно сделать стопицот функций, чтобы просто данные у пользователя забрать из инпута.
Alex
гугли threading.Event
Anonymous
https://pastebin.com/mKz8Rwpv
Alex
https://pastebin.com/mKz8Rwpv
можно упороться сильнее. пишешь функцию, которая лочит поток и дальше с отдельного хэндлера лови следующее сообщение, дергай event.set(), чем разблокируешь ранее забокированный поток и оттуда же можно вернуть новое полученное сообщение.
Anonymous
можно упороться сильнее. пишешь функцию, которая лочит поток и дальше с отдельного хэндлера лови следующее сообщение, дергай event.set(), чем разблокируешь ранее забокированный поток и оттуда же можно вернуть новое полученное сообщение.
Можно хоть какой-нибудь пример, потому что я серьезно без шуток без пяти минут узнал про state machine, FSM и то, что в телеграмм боте оно вот так работает. Бейте меня, сколько угодно, но вот так вышло.
Alex
если нет, юзай тот ConversationHandler что там есть
Anonymous
если нет, юзай тот ConversationHandler что там есть
Значит начну про это читать.
Anonymous
В гайдах для питона про это же есть, наверняка?
Alex
если у тебя бот на начаьной стадии разработки и ничего толком нет, бери aiogram
Alex
В гайдах для питона про это же есть, наверняка?
должно быть в доке к самой библиотеке
Anonymous
если у тебя бот на начаьной стадии разработки и ничего толком нет, бери aiogram
Ну в целом там особо ничего не будет. Просто бот аля угадай меллодию. Но я там сразу много чего решил попробовать. И вот вроде бы можно и обойтись, но хочется сделать, хреново быть перфекционистом :(
Anonymous
Ладно ,пошел читать про threading в питоне :)
Anonymous
Спасибо огромное за напутствие
Aleksandr
Иа
adel
Если пользователь останавливает поток для дальнейшего запуска, то в оперативной памяти останется процесс? @JRootJunior
Chebyrash
Thread не создаёт новый процесс
Митяй 🐲 Митяй
девушка-питон 😍
Митяй 🐲 Митяй
?
Да вон выше чатик почитал там где аудио сообщения :)
Митяй 🐲 Митяй
Chebyrash
сЭрвис
Митяй 🐲 Митяй
всем привет, тут есть те, кто работал с pika и rabbitmq?
Митяй 🐲 Митяй
)
Митяй 🐲 Митяй
сЭрвис
всё верно, а ты чо сервис говориш)?
Митяй 🐲 Митяй
ну хо тя да, service сервайс :)
Митяй 🐲 Митяй
но не сэрвайс)
Митяй 🐲 Митяй
но в винде сЭрвисы! :)
λ
Лол, это обычная "русификация" англ слов. Ничего нового для СНГ.
λ
Во первых так привычней уху, а во вторых начнутся срачи "ой вые.. своим английским".
Anonymous
# -*- coding: utf-8 -*- import csv import sys FILENAME = "users.csv" users = [ ["Tom", 28], ["Alice", 23], ["Bob", 34] ] with open(FILENAME, "w", newline="") as file: writer = csv.writer(file, delimiter='\n') writer.writerows(users) with open(FILENAME, "a", newline="") as file: user = ["Sam", 31] writer = csv.writer(file) writer.writerow(users) # считываем сообщения из файла print("Считанные сообщения") with open(FILENAME, "rb") as file: for message in file: print(message, end="")
Anonymous
help me
P
а можно вкратце описать суть проблемы?)
P
но сразу порекомендовал бы file отовсюду заменить на иные названия, потому что это немного другая вещь
Chebyrash
help me
Проблему хоть опишите )
P
Проблему хоть опишите )
мне так и не ответили... походу проблема между креслом и монитором :)
MrSmith
for i in range(4): name = "Thread #%s" % (i + 1) th = threading.Thread(name=name, target=lambda: ( mutex1.acquire() try: tmp = m m += 1 finally: mutex1.release() mutex2.acquire() try: summ += some(10, tmp) finally: mutex2.realeasre() )) th.run()
MrSmith
Пасаны чет не робит
adel
Два процесса будут идти одновременно, разве это не больше памяти займёт?
MrSmith
Ты смешал