
Dmitry
16.10.2018
18:41:26
а для программирования must have

Peter
16.10.2018
18:47:54
Собственно, поэтому я и даю ссылки на (неважные) переводы, одновременно призывая читать оригиналы.
Я в школе, например, учил немецкий. Английский стал неплохо понимать благодаря текстовым играм на ZX Spectrum %)

Shub
16.10.2018
18:51:04
увы. немцы говорят на английском

Google

Shub
16.10.2018
18:51:17
никуда не деться. врачи до сих пор латынь учат

Peter
16.10.2018
18:53:54
Это да. Собственно, по той же причине в 50-е годы компьютерные ученые США ходили на курсы русского языка. Поэтому что в те времена советская информатика была на высоте, выходило много важных работ на русском языке. Теперь ситуация совсем иная.
Сейчас уже мало кто знает, но те же Кнут и Хоар изучали русский язык. Ну а раз так, то и нам в нынешних условиях необходимо изучать технический английский :)

Jim Morrison
16.10.2018
19:10:23
Помогите вывести список с конца по начало

? fox.cpp
16.10.2018
19:10:47
print(foobar[::-1])

Михаил
16.10.2018
19:14:17

Peter
16.10.2018
19:15:24
Его же нужно только _вывести_ :)

Dima
16.10.2018
19:17:04
list.reverse()

Peter
16.10.2018
19:17:35
for x in reversed(data): print(x)
Какой вопрос — такой и ответ.

Dima
16.10.2018
19:18:27
[print(i) for i in reversed(l)] xD xD

Google

Shub
16.10.2018
19:19:02
не создает копию

Dima
16.10.2018
19:20:15
Создает же
Поверхностную копию

Peter
16.10.2018
19:21:12
Ага.
И, раз наш канал профессиональный...
То надо проанализировать timeit'ом все предложенные решения с изучением байткода!

Jim Morrison
16.10.2018
19:21:57
Хах

Dima
16.10.2018
19:24:53
То надо проанализировать timeit'ом все предложенные решения с изучением байткода!
Language:
py3
Source:
import timeit
print(timeit.timeit('''
reversed([1, 2, 3, 4, 5])
'''))
print(timeit.timeit('''
[1, 2, 3, 4, 5].reverse()
'''))
print(timeit.timeit('''
[1, 2, 3, 4, 5][::-1]
'''))
Result:
0.3549813749996247
0.13753758699749596
0.2390971299901139
Быстрее то что не создает копий

Shub
16.10.2018
19:27:34
там ссылка копируется

Dima
16.10.2018
19:28:14
Только copy.deepcopy

Shub
16.10.2018
19:28:35

Dima
16.10.2018
19:28:36
Новый обьект создается

Shub
16.10.2018
19:28:49
reversed() создает новый генератор

Dima
16.10.2018
19:28:51

Shub
16.10.2018
19:29:40
хм, и вправду создает

Google

Peter
16.10.2018
19:32:08
Хотя, это не спортивно, уже не список.

Dima
16.10.2018
19:33:59
Во всех вариантах был список, все чесно

Shub
16.10.2018
19:34:12
In [20]: lst = list(range(100000))
In [21]: type(lst)
Out[21]: list
In [22]: sys.getsizeof(lst)
Out[22]: 900112
In [23]: rev = lst[::-1]
In [24]: type(rev)
Out[24]: list
In [25]: sys.getsizeof(rev)
Out[25]: 800064
срез почему-то меньше

Peter
16.10.2018
19:38:51
Списки в Питоне резервируют доп. место для расширения размера. Возможно, тут это и проявилось.

Roman
16.10.2018
19:44:52

Peter
16.10.2018
19:45:51
Я сейчас поиграл с getsizeof. У меня получается простая формула 36 + n * 4 для размера списка. И это работает одинаков и для исходного списка, и для rev.
>>> 40 + (100000 - 1) * 4
400036
>>> sys.getsizeof([0] * 100000)
400036
>>> sys.getsizeof(([0] * 100000)[::-1])
400036
А вот с list-range результат интересный!
>>> sys.getsizeof(list(range(100000)))
450060
>>> sys.getsizeof(list(range(100000))[::-1])
400036

Shub
16.10.2018
19:49:11
угу

Peter
16.10.2018
19:49:15
То есть просто list(range) что-то привносит в заголовок (?) списка.

Shub
16.10.2018
19:49:31
надо посмотреть в сорсы PyList, чего гадать-то

Peter
16.10.2018
19:49:32
А после [::-1] у нас получается уже обычный список.

Dmitry
16.10.2018
19:51:02
Профессиональный подход!)

Moon
17.10.2018
05:57:55
Вакансии нельзя

Vlad
17.10.2018
05:58:57

Moon
17.10.2018
06:00:05
Хз, глянь тут @proDOT

Vlad
17.10.2018
06:24:49

Google

V
17.10.2018
07:07:56

Vlad
17.10.2018
07:18:29

V
17.10.2018
12:51:45

Alex
17.10.2018
13:35:15
ребят, у меня такая проблема, мне надо вывести название переменной и ее значение. Если подробнее, название функции и что она выводит
где-то видел это как-то main делается, но забыл
подскажите?

Igor
17.10.2018
13:36:34

Shub
17.10.2018
13:36:39
func.__name__, func.__doc__?

Alex
17.10.2018
13:37:26
да, func.name
точно спассибо

Ляман
17.10.2018
13:45:24
Ребята какой самый быстрый способ парсинга sitemap? Юзал bs4 + xml, но обычные регулярки оказались быстрее, есть способ получше?

Shub
17.10.2018
13:45:50
есть. написать свой парсер

Dmitry
17.10.2018
13:46:11

Ляман
17.10.2018
13:46:13

Dmitry
17.10.2018
13:46:34
юзай просто xml либу которая пошустрее ивсё

Ляман
17.10.2018
13:46:53

Shub
17.10.2018
13:48:29

Ляман
17.10.2018
13:49:02
они все равно быстрее как не крути

Google

Shub
17.10.2018
13:51:19
быстрее регулярок - только текстовые операции. так что решай, что нужно - или полная поддержка формата, или быстрое вытаскивание нужных полей
а вообще, что значит "быстро"?
bs4 - вообще забей на нее, это костыль для разбора невалидного html