
Tishka17
13.03.2019
06:19:34
Работает
Вообще, да. От ученика это и хотели
Но тут предложили репр для класса
Я даже погуглил как правильно это сделать, ни разу в голову не приходило

Google

Tishka17
13.03.2019
06:20:48
Вот даже интересно, а можно репр для функции сделать?

Alexey
13.03.2019
06:21:18

Mr
13.03.2019
06:21:23
Дак чего гуглить если выше уже про метакласс написали

Cykooz
13.03.2019
06:21:38
Хотя странно требовать такое от ученика. Зачем ему интроспекция и вся вот эта динамическая шелуха. Ему бы алгоритмики, if-чики, циклы и ввод данных из консоли.

Tishka17
13.03.2019
06:21:46
Иногда быстрее чем гуглить

Cykooz
13.03.2019
06:22:49
help(help) ?

Mr
13.03.2019
06:22:59
Хз кому как удобнее. Мне нагляднее всегда онлайн доку на втором мониторе держать

M
13.03.2019
06:23:30
help спасает, когда онлайн доки посмотреть не варик

Tishka17
13.03.2019
06:23:54
def x():pass
x.__repr__=lambda s: "124"
print(repr(x))
Все равно выводит оригинальный репр

Aragaer
13.03.2019
06:25:27

Google

Mr
13.03.2019
06:25:45
Ок. Один большой тоже подойдёт :-)

Shieldy
13.03.2019
06:26:17
Добро пожаловать, @Yunickin!
Не забудь ознакомиться с правилами чата. Ссылка в описании группы.
Добро пожаловать, Михаил Jac!
Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

?? Eugene
13.03.2019
06:27:45

Alexey
13.03.2019
06:28:02

Tishka17
13.03.2019
06:29:40
когда какая-нибудь неведомая фигня прилетает

Михаил
13.03.2019
06:30:55
Привет, с помощью питона можно парсить страницы на https?

Valery
13.03.2019
06:31:07
Кто помнит, как в терминале линуха сделать скрипт, типа
ls | python3 "_.replace('a', 'b')" ?

Alexander
13.03.2019
06:32:50

Valery
13.03.2019
06:33:00

Alexander
13.03.2019
06:33:20
какой?
сам же написал: ls | ....

Valery
13.03.2019
06:33:55

Mr
13.03.2019
06:33:56
Ls | sed ‘s/a/b/g’ штоль

Valery
13.03.2019
06:34:11
у меня там синтаксис от балды

Cykooz
13.03.2019
06:34:20

Valery
13.03.2019
06:34:24
я просто не помню как правильно
да, работает! Емнип был синтаксис короче, нет?

Google

Cykooz
13.03.2019
06:35:18
Не знаю, первый раз такое делаю ?

Alexey
13.03.2019
06:35:19

?? Eugene
13.03.2019
06:35:35
Это дело можно средствами gnu проще сделать

Tishka17
13.03.2019
06:37:06

?? Eugene
13.03.2019
06:38:50
Да низя, функции - анбаунд
А репр таки из класса забирается
Разве что object'у репр назначить (не уверен)

Mr
13.03.2019
06:41:07

Tishka17
13.03.2019
06:41:20

Cykooz
13.03.2019
06:56:11

Alexey
13.03.2019
07:00:25
ну это же не repr(foo) =))
Знаю. Я о том, что функции изменяемы, просто репр работает по другому:
repr = lambda obj: type(obj).__repr__(obj)

Shieldy
13.03.2019
07:02:19
Добро пожаловать, @ad_mf!
Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

Tishka17
13.03.2019
07:02:38

Iliya
13.03.2019
07:13:44
Утрое доброе, время сумасшедших вопросов.
Заранее прошу прощения
Вопрос по List Comprehensions
Есть лист например из 10 элементов
mlst = [1,2,3,4,5,6,7,8,9,0]
хочу разбить его на листы по 3, чтобы мог передать [1,2,3] и тд и последний лист [0]
не помню как
Вот есть такой вариант
def split(lst, count):
return [lst[i::count] for i in range(count)]
mlst = [1,2,3,4,5,6,7,8,9,0]
n_mlst = split(mlst, 3)
print(n_mlst)
Может быть есть что-то встроенное или более быстрое, а то у меня лист на 1.1М и разбить его надо по 10к


Andrew
13.03.2019
07:16:41
Утрое доброе, время сумасшедших вопросов.
Заранее прошу прощения
Вопрос по List Comprehensions
Есть лист например из 10 элементов
mlst = [1,2,3,4,5,6,7,8,9,0]
хочу разбить его на листы по 3, чтобы мог передать [1,2,3] и тд и последний лист [0]
не помню как
Вот есть такой вариант
def split(lst, count):
return [lst[i::count] for i in range(count)]
mlst = [1,2,3,4,5,6,7,8,9,0]
n_mlst = split(mlst, 3)
print(n_mlst)
Может быть есть что-то встроенное или более быстрое, а то у меня лист на 1.1М и разбить его надо по 10к
А зачем нужно так много мелких списков если не секрет?

Iliya
13.03.2019
07:17:05

Andrew
13.03.2019
07:18:22

Iliya
13.03.2019
07:20:16

Deep Sea
13.03.2019
07:20:35
Утрое доброе, время сумасшедших вопросов.
Заранее прошу прощения
Вопрос по List Comprehensions
Есть лист например из 10 элементов
mlst = [1,2,3,4,5,6,7,8,9,0]
хочу разбить его на листы по 3, чтобы мог передать [1,2,3] и тд и последний лист [0]
не помню как
Вот есть такой вариант
def split(lst, count):
return [lst[i::count] for i in range(count)]
mlst = [1,2,3,4,5,6,7,8,9,0]
n_mlst = split(mlst, 3)
print(n_mlst)
Может быть есть что-то встроенное или более быстрое, а то у меня лист на 1.1М и разбить его надо по 10к
Используй генераторы

Ирод Раковой
13.03.2019
07:21:11
Что пробивать чтобы выучить как строить приложения ? Что-то тип software architecture ? Тип знать что куда ложит. Аля разделить работу с дб и меседж хендлер в разные файлы и т.д. ?

Google

Deep Sea
13.03.2019
07:22:12
Плюс есть уже готовый islice в itertools

Tishka17
13.03.2019
07:22:26
Утрое доброе, время сумасшедших вопросов.
Заранее прошу прощения
Вопрос по List Comprehensions
Есть лист например из 10 элементов
mlst = [1,2,3,4,5,6,7,8,9,0]
хочу разбить его на листы по 3, чтобы мог передать [1,2,3] и тд и последний лист [0]
не помню как
Вот есть такой вариант
def split(lst, count):
return [lst[i::count] for i in range(count)]
mlst = [1,2,3,4,5,6,7,8,9,0]
n_mlst = split(mlst, 3)
print(n_mlst)
Может быть есть что-то встроенное или более быстрое, а то у меня лист на 1.1М и разбить его надо по 10к
[ mlist[i*3:i*3+3] for i in range(len(mlist)//3) ]

Andrew
13.03.2019
07:23:22

Tishka17
13.03.2019
07:23:44
Утрое доброе, время сумасшедших вопросов.
Заранее прошу прощения
Вопрос по List Comprehensions
Есть лист например из 10 элементов
mlst = [1,2,3,4,5,6,7,8,9,0]
хочу разбить его на листы по 3, чтобы мог передать [1,2,3] и тд и последний лист [0]
не помню как
Вот есть такой вариант
def split(lst, count):
return [lst[i::count] for i in range(count)]
mlst = [1,2,3,4,5,6,7,8,9,0]
n_mlst = split(mlst, 3)
print(n_mlst)
Может быть есть что-то встроенное или более быстрое, а то у меня лист на 1.1М и разбить его надо по 10к
а исходные данные именно list?

Iliya
13.03.2019
07:25:21

Tishka17
13.03.2019
07:25:45
если есть уже именно лист - ( mlist[i*3:i*3+3] for i in range(len(mlist)//3) )

Iliya
13.03.2019
07:25:54

Ирод Раковой
13.03.2019
07:26:43

Iliya
13.03.2019
07:26:44

Tishka17
13.03.2019
07:26:58
упс

Iliya
13.03.2019
07:27:14

Tishka17
13.03.2019
07:27:42
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Потерялся 0
>>> count = len(mlist)//3 + 1 if len(mlist)%3 else 0
>>> [ mlist[i*3:i*3+3] for i in range(count) ]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

Ирод Раковой
13.03.2019
07:28:31
Я про построения приложение или сервиса спрашивал
По типу MVC
Что гуглить

Tishka17
13.03.2019
07:28:50
ну если с этими паттернами все - тогда дядюшка боб

Ирод Раковой
13.03.2019
07:28:50
Как это называется ?

Google

Iliya
13.03.2019
07:29:17
>>> count = len(mlist)//3 + 1 if len(mlist)%3 else 0
>>> [ mlist[i*3:i*3+3] for i in range(count) ]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
да, спасибо, проверю на 101к

Tishka17
13.03.2019
07:29:22
вообще, если у тебя изначально не список, а генератор, то проще через islice, да

LighteR
13.03.2019
07:30:04

Tishka17
13.03.2019
07:30:16
ну да, фаулер же ещё
забыл

Ирод Раковой
13.03.2019
07:30:27
Пасиб

Iliya
13.03.2019
07:32:49
>>> count = len(mlist)//3 + 1 if len(mlist)%3 else 0
>>> [ mlist[i*3:i*3+3] for i in range(count) ]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
чуть добавил шаг, чтобы было удобнее тестить
mlist = [1,2,3,4,5,6,7,8,9,0,19]
step = 5
count = len(mlist)//step + 1 if len(mlist)%step else 0
for i in [ mlist[i*step:i*step+step] for i in range(count) ]:
print(i)
Интересно, что с этим кодоп по производителности

Tishka17
13.03.2019
07:37:50
def subslice(x, count):
try:
for i in range(count):
yield next(x)
except StopIteration:
return
def it(x):
x = iter(x)
while True:
yield subslice(x, 3)
for c in it(range(10)):
n = 0
for i in c:
print(i)
n += 1
if n == 0:
break
может быть можно оптимальнее

Denis
13.03.2019
07:38:06

Tishka17
13.03.2019
07:38:30
хотя тебе внутренние генераторы не нужны, можно список возвращать
чуть добавил шаг, чтобы было удобнее тестить
mlist = [1,2,3,4,5,6,7,8,9,0,19]
step = 5
count = len(mlist)//step + 1 if len(mlist)%step else 0
for i in [ mlist[i*step:i*step+step] for i in range(count) ]:
print(i)
Интересно, что с этим кодоп по производителности
$ python3 1.py
===
0
1
2
===
3
$ cat 1.py
def subslice(x, count):
try:
for i in range(count):
yield next(x)
except StopIteration:
return
def it(x):
x = iter(x)
while True:
s = list(subslice(x, 3))
if not s:
break
yield s
for c in it(range(4)):
print("===")
for i in c:
print(i)
вот так лучше