
Темный
18.07.2016
20:14:51
не самый кошерный вариант:
>>> from collections import defaultdict
>>>
>>> try:
... cmp
... except NameError:
... cmp = lambda a, b:-1 if a < b else int(a > b)
...
<function <lambda> at 0x00CC1420>
>>> rewards = {
... -1: [[1, 0, 0, 1, 0], [1, 1, 0, 0, 3]],
... 0: [[1, 0, 1, 0, 1], [1, 0, 1, 0, 1]],
... 1: [[1, 1, 0, 0, 3], [1, 0, 0, 1, 0]],
... }
>>>
>>> def t():
... # total, win, draw, loss, score
... score = defaultdict(lambda:[0, 0, 0, 0, 0])
...
... nn = int(input())
...
... for _ in range(nn):
... cmd1, score1, cmd2, score2 = input().split(';')
... win1, win2 = rewards[cmp(int(score1), int(score2))]
... score[cmd1] = list(map(sum, zip(score[cmd1], win1)))
... score[cmd2] = list(map(sum, zip(score[cmd2], win2)))
...
... for cmd, result in score.items():
... print('{}: {} {} {} {} {}'.format(cmd, *result))
...
>>> t()
3
Зенит;3;Спартак;1
Спартак;1;ЦСКА;1
ЦСКА;0;Зенит;2
Спартак: 2 0 1 1 1
Зенит: 2 2 0 0 6
ЦСКА: 2 0 1 1 1
там было условие - без либ, но спасибо


Omni
18.07.2016
20:14:52


Zart
18.07.2016
20:17:44
без либ - легко:
>>> try:
... cmp
... except NameError:
... cmp = lambda a, b:-1 if a < b else int(a > b)
...
<function <lambda> at 0x00CC1420>
>>> rewards = {
... -1: [[1, 0, 0, 1, 0], [1, 1, 0, 0, 3]],
... 0: [[1, 0, 1, 0, 1], [1, 0, 1, 0, 1]],
... 1: [[1, 1, 0, 0, 3], [1, 0, 0, 1, 0]],
... }
>>>
>>> def t():
... class ddict(dict):
... def __missing__(self, key):
... # total, win, draw, loss, score
... return self.setdefault(key, [0, 0, 0, 0, 0])
... score = ddict()
... nn = int(input())
... for _ in range(nn):
... cmd1, score1, cmd2, score2 = input().split(';')
... win1, win2 = rewards[cmp(int(score1), int(score2))]
... score[cmd1] = list(map(sum, zip(score[cmd1], win1)))
... score[cmd2] = list(map(sum, zip(score[cmd2], win2)))
... for cmd, result in score.items():
... print('{}: {} {} {} {} {}'.format(cmd, *result))
...
>>> t()
3
Зенит;3;Спартак;1
Спартак;1;ЦСКА;1
ЦСКА;0;Зенит;2
Спартак: 2 0 1 1 1
Зенит: 2 2 0 0 6
ЦСКА: 2 0 1 1 1


Темный
18.07.2016
20:39:30
split() может разбить сплошную строку посимвольно? или только через цикл созвадать посимвольный список строки?

Google

Denis
18.07.2016
20:40:13
Например?

Omni
18.07.2016
20:40:25

Denis
18.07.2016
20:40:29
split возвращает список

Темный
18.07.2016
20:41:02

Denis
18.07.2016
20:41:17
тогда list('abc')

Темный
18.07.2016
20:42:00
точно, спасибо
последний вопрос на сегодня:
in_keys = list(input())
d = {} #in_keys[i] тут равен ключу с неким значением
for i in in_keys:
if in_keys[i] in d:
print(d.get(in_keys[i]), end="")
нельзя использовать строку на поиск в словаре? ошибка вида
TypeError: list indices must be integers, not str

Denis
18.07.2016
20:55:44
Чему равно i при ошибке?

Темный
18.07.2016
20:56:40
i = "a"
d = {"a": "*" , ...}

Denis
18.07.2016
20:56:55
Ты не можешь индексировать список строками

Zart
18.07.2016
20:56:58
for i in in_keys - перебор значений
if in_keys[i] - какого хрена оно в индексе?

Denis
18.07.2016
20:57:27
Индексы списка должны быть числами

Темный
18.07.2016
21:13:14
Спасибо! такие глупые ошибки..

Google

Denis
18.07.2016
21:14:25
Попробуй в следующий раз попытаться разобраться самостоятельно, прежде чем задавать тупые вопросы в чате

Темный
18.07.2016
21:16:08
не пишу сюда пока сам не попытаюсь разобраться, но в этот раз согрешил - не прогнал через визуализатор

53r63rn4r
18.07.2016
21:25:09
Воу воу воу, неоскорбляй, есть чат для тех, кто поопытнее, а этот - бегинерс, для новичков

Denis
18.07.2016
21:26:49
Человек должен учиться разбираться в своем коде независимо от опыта
В жизни пригодится
И это не оскорбление

$p33d_$n@i1
19.07.2016
00:38:32
Господа. Если имеется множество параллельных потоков в целеру и они пишут в одну БД (даже в одну таблицу или работают с одной строкой), будут ли они блокировать доступ друг другу? Или в целеру уже реализован механизм защиты от одновременной записи? Джанго+целеру, прошу не кидать тапками

terry
19.07.2016
05:56:02
https://new.vk.com/tnull?w=wall-72495085_450649

Cykooz
19.07.2016
06:41:55
Ну и если у тебя такой кейс, что надо на стороне клиента организовать последовательный доступ к базе, то либо надо воспользоваться любым решением для организации распределёных локов, либо просто обеспечить условие, что celery-воркер, выполняющий именно эту задачу, будет только один и при этом с настройкой —concurency=1.


Zart
19.07.2016
07:47:10
это что за говнобаза такая?

Cykooz
19.07.2016
07:48:16
это что за говнобаза такая?
Ну я вполне могу предположить наличие кейсов, в которых даже Oracle не поможет, и придётся на стороне клиента предотвращать параллельный доступ к данным.

Zart
19.07.2016
07:48:26
щито?

Cykooz
19.07.2016
07:52:46
Ну вот как вариант, я его называю "древовидный лок". Это когда например надо ставить лок на некую ноду в дереве, при этом так, что бы этот лок блокировал любые операции на заданную глубину вверх и вниз по дереву. Тут ни какие транзакции не помогут поставить этот лок (если он реализуется в обычной базе). Единственный вариант - использовать "простой лок", что бы залочить таблицу, которая реализует "древовидный лок", перед тем как начать с ней работать.
Хотя насчёт Oracle я конечно погорячился - в нём всяко можно наколбасить хранимку или какой то тригер, который будет брать на себя всю эту логику сложных локов. Но это как бы всяко уже не "встроеные средства базы", а нечто, что разработчик сам должен запилить и потому в целом не сильно отличается от реализации на стороне "клиента"

Zart
19.07.2016
08:01:56
а нахера такое делать вообще?...
особенно в много потоков

Cykooz
19.07.2016
08:08:48
Ну вот моя личная мозоль в том - что в моей системе надо организовать "древовидные локи", так что бы лочить только определёные участки дерева. Этот кейс подразумевает, что можно в много потоков работать с базой если нет пересечения участков. Например разные юзеры вполне могут работать со своими данными параллельно друг с другом, но вот один юзер не может параллельно добавлять в ветку дерева новые ноды и при этом удалять эту ветку.

Roman
19.07.2016
09:07:45
https://github.com/AHAAAAAAA/PokemonGo-Map
Может кто помочь это запустить?

Google

Roman
19.07.2016
09:07:52
На винде

Zart
19.07.2016
09:09:48
интересно, что такое flask server

Roman
19.07.2016
09:11:06
Flask-GoogleMaps?

Zart
19.07.2016
09:11:23
каким хуем это сервер...
автор софтины не умеет в пакаджи

Roman
19.07.2016
09:12:00
2.7 питон

Zart
19.07.2016
09:12:16
ичо?

Roman
19.07.2016
09:12:25
не хочу ставить

Zart
19.07.2016
09:12:26
автор не умеет правильно писать експет
не хоти

Roman
19.07.2016
09:12:30
не запуститься по другому?

Zart
19.07.2016
09:12:56
исправь его криворукое поделие - запустится

Roman
19.07.2016
09:13:15
как в пичарме выбрать другую версию?

Zart
19.07.2016
09:13:27
версию чего?

Roman
19.07.2016
09:13:36
питона

Zart
19.07.2016
09:13:54
укажи его в енвиронменте
но он же у тебя не установлен?

Roman
19.07.2016
09:16:08
Да

Zart
19.07.2016
09:16:25
а как ты собрался?..

Roman
19.07.2016
09:16:38
я не понимаю, вот и спрашиваю

Google

Sergey
19.07.2016
09:16:41
Интересно, зачем там в зависимостях coveralls, если я не вижу ни одного теста в репе?

Roman
19.07.2016
09:16:43
я хз как это устанавливать

Zart
19.07.2016
09:17:09
ну круто. автор того говна не умеет его писать, а его юзеры не умеют его ставить. они нашли друг друга 8)

Roman
19.07.2016
09:20:06
скачал, установил

Zart
19.07.2016
09:20:11
ну.

Roman
19.07.2016
09:20:23
потом пичарм скачал, там путь провел
и все работает

Zart
19.07.2016
09:20:38
вопрос тогда в чем?

Admin
ERROR: S client not available

Roman
19.07.2016
09:20:42
кароч забей
пойду редит читать

Zart
19.07.2016
09:20:53
точно так же и 2.7 ставится
*посмотрел список "фиксов"* там такие же покемоны пишут

Roman
19.07.2016
09:23:00
да бля, я поставил
теперь пишет, что ошибка в синтаксисе
у меня значит комп уже по дефолту на 3.5.2 запускает
как запустить на 2.7 без пичарма

Zart
19.07.2016
09:24:03
превед, хреново поставленный 3.5
поменяй python на py -2

Google

Roman
19.07.2016
09:24:44
где?

Zart
19.07.2016
09:25:16
в командной строке. т.е.
pip install.. меняешь на py -2 -mpip install ...
блядь
даже прочитать простейшую инструкцию уже не в состоянии?

Vladimir
19.07.2016
09:27:26
АХАХ

Zart
19.07.2016
09:27:28
в командной строке. т.е.
pip install.. меняешь на py -2 -mpip install ...

Roman
19.07.2016
09:27:40
я не шарю блять в таких действиях
очень сложно

Vladimir
19.07.2016
09:27:49
http://miped.ru/f/threads/uznaem-mestopolozhenie-pokemonov.24452
моя инструкция

Zart
19.07.2016
09:28:50
очередной рецепт писанный покемонами для покемонов...

Alexandr
19.07.2016
09:29:14
гайз, а кто-нибудь работал с exchange через python? в частности интересует, в какую сторону копать, чтобы питоном забрать admin audit log и mailbox audit log? в какую сторону капать?

Zart
19.07.2016
09:29:40
ексчендж какой? 2013?

Alexandr
19.07.2016
09:29:44
да

Zart
19.07.2016
09:29:51
там вроде ж теперь официально рулят через павершелл
если у них есть ком апи, то пивин32 ставь и рули

Alexandr
19.07.2016
09:30:39
powershell - да. вертится скрипт, который выбирает всё, что нужно
про апи спасибо, гляну

Roman
19.07.2016
09:31:25

Vladimir
19.07.2016
09:31:36
бля
Эта группа больше не существует