@ru_python

Страница 6638 из 9768
Abbath
01.10.2018
13:42:24
El Mariachi
01.10.2018
13:42:55
ну, не видя код остается только ванговать... ибо должно работать

Iliya
01.10.2018
13:43:34
Всем привет, такой вопрос: есть список с такими данными ['10-01-2018,16:34:52,937,0\r', '10-01-2018,16:35:22,947,0\r', '10-01-2018,16:35:52,909,0\r', '10-01-2018,16:36:22,977,0\r', '10-01-2018,16:36:52,901,0\r', '10-01-2018,16:37:22,947,0\r', '10-01-2018,16:37:52,862,0\r', '10-01-2018,16:38:22,886,0\r', '10-01-2018,16:38:52,972,0\r', '10-01-2018,16:39:22,937,0\r'] Как мне разложить эти данные в три разных списка date[] - где будет 10-01-2018 time[] - где будет 16:34:52 value[] - и значение 937

Abbath
01.10.2018
13:43:56
FORMAT = '[%(asctime)-15s] [%(levelname)-8s] %(message)s' logging.basicConfig(format=FORMAT, level=logging.DEBUG) logger = logging.getLogger('Test') fh = logging.FileHandler('test.log') fh.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setLevel(logging.WARNING) formatter = logging.Formatter(FORMAT) fh.setFormatter(formatter) ch.setFormatter(formatter) logger.addHandler(ch) logger.addHandler(fh) logger.debug('Successfully parsed cmd params')

Google
Iliya
01.10.2018
13:45:46
Цикл + split по запятой
пробовал, не получается

Abbath
01.10.2018
13:45:47
ну, не видя код остается только ванговать... ибо должно работать
Закинул код выше. Работать-то оно работает, но пишет или никуда или везде

Проксимов
01.10.2018
13:45:54
пробовал, не получается
Что не получается?

Iliya
01.10.2018
13:46:20
Что не получается?
Сейчас покажу, минуту for item in sr_list: item.split(',') temp_list.append(item) И получается тупо копирование листа

Abbath
01.10.2018
13:47:49
Проксимов
01.10.2018
13:48:39
Сейчас покажу, минуту for item in sr_list: item.split(',') temp_list.append(item) И получается тупо копирование листа
Во-первых почитай как работает split и что возвращает. Во-вторых тебе нужно 3 списка а не один. В-третьих @ru_python_beginners

Abbath
01.10.2018
13:48:54
Сейчас покажу, минуту for item in sr_list: item.split(',') temp_list.append(item) И получается тупо копирование листа
Потому что результат сплита уходит вникуда, нужно присвоить его куда-то

intruder
01.10.2018
13:56:45
Error [WinError 87] The parameter is incorrect while executing command python setup.py egg_info Could not install packages due to an EnvironmentError: [WinError 87] The parameter is incorrect на винде чем может быть вызвана ошибка?

pip install flask

python 3.7

Google
Саша
01.10.2018
13:58:06
class Section(Base): __tablename__ = "sections" id = Column(Integer, primary_key=True) name = Column(Text) parent_id = Column(Integer, ForeignKey("sections.id")) url = Column(Text) is_end = Column(Boolean) img_url = Column(Text) path = Column(Text) children = relationship("Section") parent = relationship("Section", back_populates=".") Люди, что место точки писать надо?

El Mariachi
01.10.2018
13:59:00
Abbath
01.10.2018
13:59:03
А, понял

Nikolay
01.10.2018
13:59:25
А, это местный душевнобольной. Не обращай внимания

Abbath
01.10.2018
13:59:50
ничего
Спасибо, работает

El Mariachi
01.10.2018
13:59:57
Что вместо нее?
точнее logger.setLevel(logging.DEBUG) вместо нее

Проксимов
01.10.2018
14:08:38
Это Вы мне?
Тсс, он разговаривает сам с собой

Sultanmurad
01.10.2018
14:19:22
Есть две таблицы, нужно сравнить каждую строку первой таблицы с каждой строкой второй таблицы, есть что-то быстрее, чем вложенный цикл?

Tigran
01.10.2018
14:19:46
Нет.

Если тебе надо перебрать всевозможные пары строк и никакой дополнительной информации нет, быстрее нельзя.

Iliya
01.10.2018
14:20:40
Во-первых почитай как работает split и что возвращает. Во-вторых тебе нужно 3 списка а не один. В-третьих @ru_python_beginners
Спасибо за совет, Разобрался Вот как решил for item in regstr: date.append(item.split(',')[0]) timing.append(item.split(',')[1]) tps.append(item.split(',')[2]) regstr - это тот лист, что я кидал

wicker
01.10.2018
14:21:45
Можно попробовать pandas. Стакнуть таблицы и использовать метод duplicates для поиска общих строк

Ser
01.10.2018
14:22:50
Если тебе надо перебрать всевозможные пары строк и никакой дополнительной информации нет, быстрее нельзя.
а если таблица - описание БД и нужно смерджить например обновленные данные?

Василий
01.10.2018
14:23:05
Печаль, но спасибо!
может упростить дело itertools.combinations()

Google
Tigran
01.10.2018
14:23:26
может упростить дело itertools.combinations()
Хотел сказать «усложнить»? )

Iliya
01.10.2018
14:23:51
date, timing, tps = zip(*(item.split(',') for item in regstr))
модно, коасивл - спасибо :)

wicker
01.10.2018
14:24:13
И как ты стакнешь каждую строку с каждой?
Таблицы стакаешь, а не строки. И потом в рамках одной таблицы ищешь одинаковые строки

Василий
01.10.2018
14:24:26
Хотел сказать «усложнить»? )
Если надо каждую с каждой сравнить то так выйдет код чище. а по скорости точно так же

Tigran
01.10.2018
14:24:56
Да
Пффф, фигачь хештейблы тогда

Сформулируй задачу, короче. Сравнить на равенство иии… что?

Василий
01.10.2018
14:25:26
Да
А чего в таблицах. это если это можно в хеш превратить то тигран прав

Iliya
01.10.2018
14:25:56
date, timing, tps = zip(*(item.split(',') for item in regstr))
только что-то не работает :) ValueError: too many values to unpack (expected 3)

Василий
01.10.2018
14:26:00
поиск по хештаблице работает за O(n) вроде

Ser
01.10.2018
14:26:02
Можно попробовать pandas. Стакнуть таблицы и использовать метод duplicates для поиска общих строк
у меня аналогичная задача на пандасе не завелась, упорно говорил что разные датафреймы хотя отгружал по мурзилке через panda.read_sql_query

Tigran
01.10.2018
14:26:37
только что-то не работает :) ValueError: too many values to unpack (expected 3)
А, у тебя где-то много запятых. Тогда надо date, timing, tps = zip(*(item.split(',')[:3] for item in regstr))

Tigran
01.10.2018
14:27:14
не считая вычисления хэша

Ser
01.10.2018
14:27:19
Индексы и размерности должны быть соответствующие
значит это не мой способ, у меня будут разные, и нужно идентичные данные оставить без изменений а новые добавить из левой в правую, при этом на выходе нужен хтмл где пометить цветом изменения

Google
Василий
01.10.2018
14:27:22
Строки строк)
Состакай так чтобы row таблицы был строкой. и сделай из этой таблицы хэш. а потом проверяй на вхождение

Tigran
01.10.2018
14:27:55
да, вот так зашло :)
Ещё вариант — date, timing, tps = zip(*(item.split(',', 2) for item in regstr)) Тогда всё после второй запятой сохранится (там, где их больше двух).

Строки строк)
Списки строк, ты хотел сказать?

Скажи уже, что на выходе должно получиться

надо найти, существуют ли совпадения?

Iliya
01.10.2018
14:29:47
Ещё вариант — date, timing, tps = zip(*(item.split(',', 2) for item in regstr)) Тогда всё после второй запятой сохранится (там, где их больше двух).
ядрено смотрится, я еще не совсем понял предыдущий вариант Вроде как ясно, но не совсем что zip делает знаю, только я его обычно юзаю в обраном порядке, что-то вроде for i,j,k in zip(list, list, list)

Sultanmurad
01.10.2018
14:30:17
Сформулируй задачу, короче. Сравнить на равенство иии… что?
У меня работает пороговая функция, в зависимости от того, сколько полей и какие поля совпали в двух строках(tuple), каждой паре присваивается балл, если по итогу балл вышел какого-то значения, я эту пару строк склеиваю

Tigran
01.10.2018
14:30:36
жёстко

а сколько полей в одной строке?

примерно. и сколько строк всего?

Sultanmurad
01.10.2018
14:31:42
примерно. и сколько строк всего?
это я не знаю, но где-то 1.5 млдр сравнений происходит

9 часов скрипт работает) это многовато)

Василий
01.10.2018
14:32:20
это я не знаю, но где-то 1.5 млдр сравнений происходит
наборы можно через set() сравнивать если они уникальные

Tigran
01.10.2018
14:32:53
30
Много :/ А какие баллы у них и какой порог?

Sultanmurad
01.10.2018
14:33:53
Много :/ А какие баллы у них и какой порог?
У каждого поля свой балл, ну в сумме должно 100 получиться, но это пока все эмпирически, я тестирую)

Tigran
01.10.2018
14:36:11
Ты можешь построить dict вида (номер поля, значение поля) -> [список номеров строк, в которых по этому номеру такое значение] одним проходом по своей базе, и тебе будет легче находить потенциально близкие строки.

Для строки (п1, …, пN) надо взять объединение номеров строк, у которых J-е поле равно пJ, и если где-то есть строка, превышающая порог, её номер точно будет в этом множестве.

Правда, это множество всё ещё может быть очень большим, если у тебя мало разных строк встречается в качестве значений полей. Ну тут уже можно экспериментировать, завести отображение (номер поля, значение поля, значение след. поля) -> […] и так далее

Google
Ринат
01.10.2018
14:43:23
Подскажите, почему когда запускаю скрипт в терминале, а потом нажимаю ctrl+c или просто закрываю терминал, то скрипт перестаетработать?

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

Ринат
01.10.2018
14:45:38
haha classic, cron
Без крона?

?
01.10.2018
14:45:57
Ринат
01.10.2018
14:46:21
systemd?
ubuntu

Ринат
01.10.2018
14:46:50
Действительно. Дай-ка подумать
Ну просто если php скрипт запускаю, то все работает до тех пор пока он сам не завершится или не кикнуть его

Василий
01.10.2018
14:47:01
короче как его запуститьи оставить в рабочем состоянии, закрыв терминал при этом
есть еще экзотический вариант tmux. он оставит скрипт запущенным при отключении от терминала ))

slair
01.10.2018
14:48:17
я тмукс юзаю, когда лень сервисы городить

Ринат
01.10.2018
14:50:20
Спс

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