
subject_89P13
16.01.2017
12:29:50
В воздухе чата висит нежный троллинг.

Artem
16.01.2017
12:30:18
нежный топор

Игорь
16.01.2017
13:18:48
А поясните за protected member.
У меня есть класс AbstractClass, который объявляет self._abstract_atribute
так вот, pylint W0212 всплывает не только в наследующих классах, но и в нем самом при доступе к собственному self._abstract_atribute. Это ожидаемо?

Denis
16.01.2017
13:22:22
Вроде не должно

Google

Denis
16.01.2017
13:22:40
Ты это в методе делаешь?

Aragaer
16.01.2017
13:25:35
а покажи-ка полностью код
и вроде w0212 в наследниках тоже не должен бы показываться
то есть ошибка не в том, что в нем самом или в наследнике, ошибка в чем-то другом

Игорь
16.01.2017
13:49:10
сорри, разобрался — ругается не на собственный _abstract_atribute, а на _abstract_atribute._item, переданный как параметр

Denis
16.01.2017
14:31:17
Сортировкой подсчетом

Aragaer
16.01.2017
14:31:54
да
память будет O(1), время O(N)
если быть точнее, переменные это всего 10 интов
сортировка не нужна, просто подсчет

Проксимов
16.01.2017
14:35:12
Можно в общем описать как будет работать программа подсчётом?

Aragaer
16.01.2017
14:35:53
сначала считываем первое число, которое N
потом делаем массив размера 10, заполненный нулями. Потом N раз делаем следующее - считать число, для каждой его цифры увеличиваем на 1 соответствующее число в массиве.

Google

Aragaer
16.01.2017
14:37:22
и осталась уже ерунда, там эффективность не критична

Проксимов
16.01.2017
14:45:19
О, спасибо
А я то начал через словари решать
Кстати, когда программа отработала, получается список типа[2,3,0,5,...]
Как найти наибольшей элемент и вывести его индекс

Aragaer
16.01.2017
14:49:23
это ты уже сам как-нибудь сможешь 8)

Проксимов
16.01.2017
14:49:44
Что-то туплю

Artem
16.01.2017
14:49:57
Сделай над собой усилие

Проксимов
16.01.2017
14:50:14
Найти самый большой элемент легко, а вот связать с индексом
Аа
Мои Извинения, туплю жёстко

Aragaer
16.01.2017
14:52:14
`>>> [x[1] for x in sorted(zip([10, 1, 12, 3, 4, 5], range(1000)))][-2:]
[0, 2]`
>>> [x[1] for x in sorted(zip([10, 1, 12, 3, 4, 5], range(1000)))][-2:]
мхм
ну вот так вот можно

Artem
16.01.2017
14:53:58
Если человек учится программировать, то правильный ответ - цикл for.
Зачем все в однострочник пытаться запихнуть

Aragaer
16.01.2017
14:56:35
цикл for я тоже пытаюсь сейчас написать 8)

Nikolay
16.01.2017
14:57:20
defaultdict[some_int_here] += 1 же
память постоянная, всего 10 пар ключ-значение

Google

Levent
16.01.2017
14:58:23

Максим
16.01.2017
14:59:00
Гайз, мб тупой вопрос, но как список чисел перевести в одно число? [1,2,3] в 123

Aragaer
16.01.2017
14:59:26
arr = [10, 2, 3, 4, 15, 6, 7, 8, 9, 10]
first, second = 0, 1
for x in range(2, 10):
if arr[x] > arr[first]:
first, second = x, first
elif arr[x] > arr[second]:
second = x
first, second
(4, 0)
короче циклом сложнее

Nikolay
16.01.2017
14:59:33

Aragaer
16.01.2017
14:59:36
str
8)
print ','.join(str(1234))
1,2,3,4
вообще вон правильно подсказывают про дикт, в котором ключи не цифры, а строки "0", "1" и т.д.

Максим
16.01.2017
15:01:51
Спасибо

Artem
16.01.2017
15:04:39
Это скучный вариант, почти правильный (с лишними умножениями, но с кем не бывает)
А вот вам чистое золото, а не вариант

Artem
16.01.2017
15:04:54
int(re.sub("[^0-9]", "", str([1, 2, 3])))
Кто хуже?

Nikolay
16.01.2017
15:06:40

Artem
16.01.2017
15:07:21
ага
десятки в степень возводим, а могли просто итеративно умножать результат на 10

Максим
16.01.2017
15:08:09
Ни один я такой хер, который использует перемнную кек

Проксимов
16.01.2017
15:10:09
Я,похоже,небольшой холивар начал

Aragaer
16.01.2017
15:10:36
а, надо было наоборот..

Google

Aragaer
16.01.2017
15:11:28
int(''.join(map(str, [1, 2, 3])))
reduce(lambda x, y: x*10+y, [1, 2, 3], 0)
вот

Admin
ERROR: S client not available

Aragaer
16.01.2017
15:15:04
кошерненько

Dmitriy
16.01.2017
15:15:18
int(reduce(lambda x, y: str(x)+str(y), [1,2,3]))

Nikolay
16.01.2017
15:15:20
Наркомания какая-то

Artem
16.01.2017
15:17:24
result = 0
for digit in digits:
result = result * 10 + digit

Aragaer
16.01.2017
15:17:26
на си я бы написал аналог этого редьюса

Artem
16.01.2017
15:17:33
хули выебываться.

Aragaer
16.01.2017
15:17:40
да, это оно же

Проксимов
16.01.2017
15:19:26

Artem
16.01.2017
15:23:01
Не классно
Классно примерно так
def argmax(values)
cur_max_value = values[0]
cur_max_idx = 0
for idx, value in enumerate(values):
if value > cur_max_count:
cur_max_value = value
cur_max_idx = idx
return cur_max_idx

Aragaer
16.01.2017
15:24:30
это один максимальный ищет. А там надо два
я написал с first и second

Artem
16.01.2017
15:24:44
Где надо два?

Nikolay
16.01.2017
15:24:55
Как два байта

Aragaer
16.01.2017
15:25:12
а, вру

Google

Aragaer
16.01.2017
15:25:29
надо вывести максимальный, а если их несколько, то все в порядке убывания

Nikolay
16.01.2017
15:25:56
ШТО, сессия вроде закончилась у студентов.

Artem
16.01.2017
15:26:01
А, вижу, надо все для аргмакса

b0g3r
16.01.2017
15:26:08

Artem
16.01.2017
15:26:30
ну тогда надо копить аргмаксы в списке и сравнивать на >=, а не менять

Aragaer
16.01.2017
15:26:40
не, можно найти максимальный

Artem
16.01.2017
15:26:46
И еще раз пройти

Aragaer
16.01.2017
15:26:56
а потом просто распечатать все, кто равен максимальному значения

Artem
16.01.2017
15:27:31
Да. Ну учитывая, что у нас n фиксированное 10, пофиг, сортировать - не сортировать

Проксимов
16.01.2017
15:27:43
Сойдёт решение?

Aragaer
16.01.2017
15:27:48
val_max = max(digits.values())
for k, v in digits:
if v == val_max:
print k